为什么会有 CSS 预处理器?
我们书写 CSS 可能会遇到的问题:

  • 语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器;
  • 没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以 字面量 的形式重复输出,导致难以维护。

    CSS 预处理器的主要目标:提供 CSS 缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性。

目前最主流的三个预处理器 Less、Sass 和 Stylus

Less 更倾向接近 CSS 的声明式,计算过程弱化调用时机;而 Sass 和 Stylus 更倾向于指令式

  1. 这三者的用法具体区别,直接看《再谈 CSS 预处理器》,讲得很详细。

基本语法、嵌套语法、变量、@import、混入、继承、函数、逻辑控制 八个方面讲得特别好

  1. Sass 的发展过程,从 ruby Sass 到 node Sass 到 dart Sass,详情看文章《继往开来的 sass 3代编译器》

参考文章

《再谈 CSS 预处理器》
《继往开来的 Sass 3代编译器》