目前,较为出名的三大CSS预处理器:less
、sass
、stylus
,相信大家都不陌生,很多项目都使用预处理器来编译CSS样式,比如 bootstrap
。在 bootstrap
4.x
版本之前,都是使用 less
预处理器,但是在4.x
版本之后,bootstrap
已经把 less
换成了 sass
。。。
疑问:
既然有三款预处理器,那么哪一款预处理器更适合于我们呢?他们之间有什么差异呢?以下是我个人整理的特性对比表格,若有错误的地方,请发邮件至codes.artisan@gmail.com
指出。
特性对比:
特性 | less | sass |
---|---|---|
学习成本 | 低 | 略高 |
变量 * |
支持,以 @ 符号开头 |
支持,以 $ 符号开头 |
mixin * |
支持并以混合模式使用 | 支持(语法限定较为严格) |
嵌套规则 * |
支持 | 支持 |
运算 * |
支持 | 支持 |
逻辑判断 | 支持但不直观 docs | 支持且比较直观 docs |
循环 | 支持但不直观 docs | 支持且比较直观 docs |
默认变量 | 支持但比较麻烦 docs | 支持且简单易用 docs |
继承 | 支持 | 支持 |
变量作用域 | 全局 | 全局和局部 Understanding Variable Scope in Sass |
自定义函数 | 需要借助插件 less-plugin-functions | 支持 docs |
以上的表格仅为一些较大的差异,具体细节请查阅文档: less sass 。
结语:通过上面的表格对比,可以得出结论,less
学习成本低,但是在使用一些特性的时候,并不是那么直观(相对于编程中常用的语法来说:if
else
each
等),而 sass
学习成本相对于 less
来说学习成本更高一些,但是它的语法更直观、更贴近于现有的编程语言。