Sass和Less的优缺点和区别

895 阅读2分钟

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的参数如果遇到多参数和列表参数值的时候容易混淆;