LESS 预处理器与 CSS 选择器优化技巧分享

阅读时长 4 分钟读完

前言

在前端的开发中,我们经常需要写 CSS 样式来美化页面。但是,CSS 中有一些繁琐的重复代码,例如每个样式中都需要写 font-size、margin 等等,虽然我们可以通过提取公共样式的方式来避免这种情况,但是这样会增加代码的维护成本,并且很难从视觉上区分哪些是公共样式,哪些是特殊样式。

为了解决这个问题,诞生了一种 CSS 预处理器 —— LESS。通过 LESS 这个工具,我们可以轻松地定义变量、混合器、嵌套选择器等等,大大地减少了代码的冗余,并且提高了代码的可复用性和可维护性。

本篇文章将分享一些 LESS 预处理器的常用技巧,以及如何通过选择器的合理搭配来提高 CSS 的性能。

LESS 基础语法

LESS 的语法与 CSS 很类似,只是多了一些预处理器的特性。

变量

通过在变量名前加上@符号定义一个变量:

混合器

混合器是一段可以在多个样式中定义并且可以被重复使用的代码块,类似于函数的概念。

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

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

嵌套选择器

LESS 的嵌套选择器可以减少 CSS 中的重复代码,也更加直观。

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

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

运算

LESS 也支持一些运算符,如加减乘除等,可以用在数值、颜色、字符串等类型的值上。

CSS 选择器优化

CSS 选择器是 CSS 的基础,也是性能瓶颈所在。在书写 CSS 代码时,不合理的选择器的组合很容易导致性能下降。下面就来分享一些选择器的优化技巧。

少用后代选择器

后代选择器是指选择器中包含空格的情况,如:

这类选择器会先选择父元素,然后在遍历子元素进行匹配。当文档很大时,这种选择器会比较慢,因为每次都要逐级访问。

优化方法:

  • 减少层级嵌套,避免使用过度深的选择器;
  • 规范类的命名方式,减少选择器嵌套。

少用标签选择器

标签选择器是指以元素类型作为选择器,如:

这类选择器的匹配不仅考虑了类名和 ID,还包含标签类型,所以会比其他选择器慢。

优化方法:

  • 尽量少用标签选择器,而使用类名和 ID 等选择器;
  • 为什么这种优化方法有效?因为标签选择器越少,匹配的元素就越少,样式匹配速度就越快。

少用通配符选择器

通配符选择器是指以 * 作为选择器,如:

这种选择器虽然可以匹配所有元素,但是由于匹配的元素太多,导致样式匹配速度极慢。

优化方法:

  • 尽量少用通配符选择器;
  • 尽量不要在通配符选择器和其它选择器搭配使用,例如 * > ul

总结

本文介绍了 LESS 预处理器的使用和 CSS 选择器优化的方法。虽然选择器的优化与 LESS 的应用看起来没有太大的关系,但它们都是前端开发中不可忽略的一方面。

简单而言,尽量少的选择器,能解决问题就好,不要使用高级选择器。配合 LESS 的 mixins 及变量优化 CSS,可以让我们的 CSS 代码更加简洁、高效、可重用。

希望本文对你解决前端优化问题有所帮助!

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

纠错
反馈