利用 LESS 编写 CSS 时,如何避免过度的嵌套

阅读时长 3 分钟读完

为什么要避免过度的嵌套

嵌套是 LESS 提供的一个强大的功能,它可以让我们写出更加优美并且易于维护的 CSS。但是,过度的嵌套会导致 CSS 选择器过于复杂,由此引发的问题有:可读性差、样式污染、代码冗余等。

例如,以下是一段过度嵌套的代码:

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

这段代码虽然看起来很优美,但是当选择器过于复杂时,就会对页面渲染性能产生不利影响。

如何避免过度的嵌套

遵循“深度不超过三级”的原则

在编写 LESS 代码时,我们应该遵循“深度不超过三级”的原则,这样可以让代码更加易于理解,同时还能够保证性能表现。

例如,我们可以将上面的例子转化为:

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

这段代码清晰简洁,同时也遵循了“深度不超过三级”的原则。

采用 BEM 命名约定

BEM 命名约定是一种用于编写 CSS 类名的规范,它可以帮助我们避免过度嵌套,同时让代码更易读、易维护。

BEM 命名约定的基本原则是将样式分解为块、元素、修饰器三个部分,例如:

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

这段代码中,.person 是一个块级元素,它包含了 .person__head.person__body 两个元素,同时还有一个 .person--small 的修饰器。

使用 Mixin

Mixin 是 LESS 提供的一种定义可重用样式的方法,它可以帮助我们避免重复代码,并且可以将样式的定义从 HTML 中分离出来,同时也能避免过度的嵌套。

例如,我们可以定义一个 Mixin,用于设置一个元素的字体和颜色:

然后,就可以在需要使用这个样式的地方调用这个 Mixin:

这样可以有效减少样式的嵌套,同时还能让代码更加易于维护。

总结

避免过度的嵌套是写出好的 LESS 代码的重要原则之一。我们可以采用避免过度嵌套的方法,例如遵循“深度不超过三级”的原则、采用 BEM 命名约定、使用 Mixin 等方法。这样可以让我们编写出更易读、易维护的 CSS 代码。

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

纠错
反馈