Sass与Less
Sass 与 Less 都是 CSS 预处理器语言
什么是 CSS 预处理器?
CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行 CSS 的编码工作。
使用预处理器的优点
- 提供 CSS 层缺失的样式层复用机制
- 减少冗余代码
- 提高样式代码的可维护性
- 提高浏览器兼容性
# Sass&Less
Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。因为 Less 和 CSS 非常像,Less 仅对 CSS 语言增加了少许方便的扩展,学习很容易。
sass,作为”世界上最成熟、最稳定、最强大的专业级 CSS 扩展语言”。兼容所有版本的 css,且有无数框架使用 sass 构建,如 Compass,Bourbon,和 Susy。
SASS 版本 3.0 之前的后缀名为.sass,而版本 3.0 之后的后缀名.scss。
Sass 和 Less 这类语言,其实可以理解成 CSS 的超集,它们在 CSS 原本的语法格式基础上,增加了编程语言的特性,如变量的使用、逻辑语句的支持、函数等。让 CSS 代码更容易维护和复用。
但浏览器最终肯定是只认识 CSS 文件的,它无法处理 CSS 中的那些变量、逻辑语句,所以需要有一个编译的过程,将 Sass 或 Less 写的代码转换成标准的 CSS 代码,这个过程就称为 CSS 预处理。
# Sass 特性
由于我的项目中用的 Sass 对它比较熟悉, 列一下我用到的特色功能 (Features)
- 完全兼容 CSS3
- 在 CSS 基础上增加变量、嵌套 (nesting)、混合 (mixins) 等功能
- 通过函数进行颜色值与属性值的运算
- 提供控制指令 (control directives)等高级功能
- 自定义配置输出格式
# Sass&Less 相同与差异
Less 和 Sass 在语法上有些共性,比如下面这些:
相同点:
1、混入(Mixins)——class 中的 class;
2、参数混入——可以传递参数的 class,就像函数一样;
3、嵌套规则——Class 中嵌套 class,从而减少重复的代码;
4、运算——CSS 中用上数学;
5、颜色功能——可以编辑颜色;
6、名字空间(namespace)——分组样式,从而可以被调用;
7、作用域——局部修改样式;
8、JavaScript 赋值——在 CSS 中使用 JavaScript 表达式赋值。
不同点:
目前大部分的实现都是随着前端项目一起打包构建,只在学习或演示的时候才区分使用环境,所以不用在意处理机制,以上只是单纯的对比两者本身。