Less、Sass/Scss是什么?他们有什么区别?
Less、Sass/Scss是什么?
Less:
是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量、继承、运算、函数。
Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可在服务端运行。
Sass:
是一种动态样式语言,Sass语法属于缩排语法,
比css比多出好些功能(如变量、嵌套、运算,混入(Mixin)、继承、颜色处理,函数等),更容易阅读。
Sass与Scss是什么关系?
Sass的缩排语法,对于写惯css前端的web开发者来说很不直观,也不能将css代码加入到Sass里面,因此sass语法进行了改良,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。
SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass,两者之间不同之处有以下两点:
-
文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名
-
语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号(
{}
)和分号(;
),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。
less和sass的相同之处
- 混入(Mixins)——class中的class;
- 参数混入——可以传递参数的class,就像函数一样;
- 嵌套规则——Class中嵌套class,从而减少重复的代码;
- 运算——CSS中用上数学;
- 颜色功能——可以编辑颜色;
- 名字空间(namespace)——分组样式,从而可以被调用;
- 作用域——局部修改样式;
- avaScript赋值——在CSS中使用JavaScript表达式赋值。
less和sass的区别
- Less环境较Sass简单
Sass的安装需要安装Ruby环境,Less基于JavaScript,是需要引入Less.js来处理代码输出css到浏览器,也可以在开发环节使用Less,然后编译成css文件,直接放在项目中,有less.app、SimpleLess、CodeKit.app这样的工具,也有在线编辑地址。
- Less使用较Sass简单
- Sass较Less略强大一些
sass有变量和作用域;sass有函数的概念;进程控制;数据结构等;
- Less与Sass处理机制不一样
前者是通过客户端处理的,后者是通过服务端处理,相比较之下前者解析会比后者慢一点;
- 变量在Less和Sass中的唯一区别就是Less用@,Sass用$。
推荐使用Sass的原因
- Sass有更成熟的框架,比如说Compass,而且有很多框架也使用Sass,比如说Foundation;
- 就国外讨论的热度来说,Sass绝对优于less;
- 在国内less集中的教程是less中文官网,而Sass的中文教程,在国内较为普遍;
- sass也是成熟的CSS预处理器之一,而且有一个稳定,强大的团队在维护;
- scss对sass语法进行了改良,sass 3变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进;
- bootstrap(Web框架)最新推出的版本4,使用的就是Sass,可以看出sass有更多市场价值。