Sass 和 Less的区别
(1) 编译环境不同
Sass是通过 ruby 编译,是在服务器端处理
Less是通过 js 编译,是在客户端处理
(2) 变量符不一样
Less是用@,Sass是用$
(3) Sass支持条件语句,可以使用if{}else{},for{}循环等等。而Less不支持
(4) Less没有输出设置,Sass提供4中输出选项:nested, compact, compressed 和 expanded。
输出样式的风格可以有四种选择,默认为nested
-
nested:嵌套缩进的css代码
-
expanded:展开的多行css代码
-
compact:简洁格式的css代码
-
compressed:压缩后的css代码
(5) Sass和 Less的工具库不同
Sass有工具库Compass, 简单说,Sass和Compass的关系类似于像Javascript和jQuery的关系,Compass在Sass的基础上,封装了一系列有用的模块和模板,补充强化了Sass的功能。
Less有UI组件库Bootstrap,Bootstrap是web前端开发中一个比较有名的前端UI组件库,Bootstrap的样式文件部分源码就是采用Less语法编写。
(6) 总结
Less和Sass各有各自的好处,二者的出现都是为了同一个目的:提高开发效率!每个开发者根据自己的习惯和爱好来选择。
Sass 和 Less 的优缺点
Sass 的优点
- 用户多,更容易找到会用scss的开发,更容易找到scss的学习资源;
- 可编程能力比较强,支持函数,列表,对象,判断,循环等;相比less有更多的功能;
- 丰富的sass库:Compass/Bourbon;
Sass 的缺点
- 在公司内部安装node-sass会失败,需要使用cnpm或者手工安装
Less 的优点
- 可以在浏览器中运行,实现主题定制功能;
Less 的缺点
- 编程能力弱,不直接支持对象,循环,判断等;只有when判断
- @variable变量命名和css的@import/media/keyframes等含义容易混淆;
- mixin/extend的语法比较奇怪;
- mixin的参数如果遇到多参数和列表参数值的时候容易混淆;