LESS 中的 extend 使用规范以及注意点

阅读时长 5 分钟读完

在 LESS 中,extend 是一种非常有用的样式继承方法,它允许开发人员使用已存在的样式作为基础样式,并通过使用类似于继承的方式来扩展或覆盖这些样式。然而,如果使用不当,extend 可能会导致代码难以维护、性能下降等问题。因此,在使用 extend 之前,需要了解其规范和注意点,保证使用更加合理有效。

使用规范

1. 可复用的样式提取成类

在使用 extend 时,应该注意将可复用的样式属性提取成一个基础类,并在需要使用这些属性的类中使用 extend 继承该基础类。这样可以大大减少不必要的代码重复,并增加代码的可维护性。

例如:

-- -------------------- ---- -------
-- -------------
----------- -
  ---------- -----
  ------ -----
-

-- -- ------ -----
------ -
  ------------
  ------------ -----
-

------------ -
  ------------
  ----------- -------
-
展开代码

2. 不要嵌套过深

在使用 extend 的过程中,应该尽量避免嵌套过深的情况。过深的嵌套会使代码难以维护和阅读,同时也会导致性能下降。

-- -------------------- ---- -------
-- -------
---- -
  ------ -
    ------- -
      ---- -
        ----- -
          ----------- -
            ----------------- -----
          -
        -
      -
    -
  -
-
展开代码

3. 不要使用占位符选择器

占位符选择器是一种可以被继承但不会产生任何 CSS 输出的选择器,它们的作用类似于 mixin。在使用 extend 时,应该尽量避免使用占位符选择器,因为它们会使代码难以维护和阅读。

例如:

-- -------------------- ---- -------
-- ----------
----------- -
  ---------- -----
  ------ -----
-

------ -
  ----------------------
  ------------ -----
-

------------ -
  ----------------------
  ----------- -------
-
展开代码

4. 继承类和被继承类有共同的父类

在使用 extend 继承类时,被继承类和继承类应该具有共同的父类,否则可能会造成样式冲突和可维护性较差。

例如:

-- -------------------- ---- -------
-- -------------
---- -
  ------- -
    ------ -----
  -
-

------- -
  ------- -
    --------------------- -- -----------------
    ---------- -----
  -
-
展开代码

5. 继承类应该位于后面

在使用 extend 继承类时,被继承类应该写在 extend 语句之前,继承类应该写在 extend 语句之后。这样可以更加清晰地表达代码的逻辑。

例如:

-- -------------------- ---- -------
-- ----------------
----------- -
  ---------- -----
-

------ -
  ------------
  ------------ -----
-

------------ -
  ------------
  ----------- -------
-
展开代码

注意点

1. 不要滥用 extend

虽然 extend 在某些情况下可以极大地减少代码冗余,但是滥用 extend 可能会导致代码难以维护、可读性低下和性能问题。

因此,在使用 extend 时,应该根据具体情况判断是否使用,避免滥用。

2. extend 不是 mixin

虽然 extend 和 mixin 看起来很相似,但是它们有着不同的机制。在使用 extend 时,需要注意它的机制和限制。

3. extend 会增加 CSS 选择器的权值

使用 extend 继承类时,会增加选择器的权值。在深层嵌套和选择器权值较高的情况下,可能会导致选择器匹配的效率下降。

因此,在使用 extend 时,应该注意选择器的嵌套和权值。

4. extend 可能会重复生成样式

在使用 extend 时,如果相同的类被多次继承,并且在不同的地方发生了修改,可能会导致样式重复生成。

因此,在使用 extend 时,需要注意避免重复的样式生成。

示例代码

-- -------------------- ---- -------
-- -------------
----------- -
  ---------- -----
  ------ -----
-

-- ---------
------ -
  ------------
  ------------ -----
-

------------ -
  ------------
  ----------- -------
-

-- ---- ------
------------ -
  ------ -
    ------------
  -

  ------------ -
    ------------
  -
-

-- -------
---- -
  ------ -
    ------- -
      ---- -
        ----- -
          ----------- -
            ----------------- -----
          -
        -
      -
    -
  -
-

-- ------ ---------
---------- -
  ------ -----
-

------------- -
  ---------------------
  ---------- -----
-

-- ------ ------
----------- -
  ---------- -
    ------ -----
  -
-

-------------- -
  ---------- -
    ------------ -----
  -
-
展开代码

结语

在 LESS 中,extend 可以帮助我们减少样式代码的冗余,提高代码的可读性和可维护性。但是,需要注意使用规范和注意点,保证使用更加合理有效。在运用这种方法时,有深度和学习以及指导意义。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67bc09f4a231b2b7edd5d8b8

纠错
反馈

纠错反馈