什么是Sass
Sass 是 Syntactically Awesome Stylesheets
的简写,是一个最初由 Hampton Catlin
设计并由 Natalie Weizenbaum
开发的层叠样式表语言。
Sass 是一个将脚本解析成 CSS 的脚本语言(SassScript),也是一款 CSS 预处理器,它减少了 CSS 的重复,也因此节省了时间。Sass 是最早的 CSS 预处理语言,有比 Less 更强大的功能。Sass 扩展了 CSS3,增加了规则、变量、混入选择器、继承等特性。
什么是 CSS 预处理器
我们知道了 Sass 是 CSS 的预处理器,那么什么是预处理器呢?CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。也就是说,CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题。
Sass的特色功能
- Sass 完全兼容所有版本的 CSS。
- Sass 拥有比其他任何 CSS 扩展语言更多的功能和特性,例如增加了变量、嵌套、混合等功能。
- 通过函数进行颜色值与属性值的运算。
- 提供了控制指令(control directives)。
- 自定义输出格式。
语法格式
Sass 语言有两种语法格式:
- 最开始的语法叫做缩进语法(Indented Sass),通常简称为
Sass
,是一种简化格式。它使用缩进来代替花括号{}
,表示属性属于某个选择器。用换行代替分号分隔属性。 - 另一种语法是 SCSS(Sassy CSS),这种格式仅在 CSS3 语法的基础上进行拓展,所有 CSS3 语法在 SCSS 中都是通用的,同时加入 Sass 的特色功能。
这两种语法格式,任何一种格式都可以直接通过 @import
导入到另一种格式中使用,或者通过 sass-convert
命令行工具转换成另一种格式:
// Sass转为SCSS
$ sass-convert style.sass style.scss
// SCSS转为Sass
$ sass-convert style.scss style.sass
Sass特性
- 变量:Sass 中支持定义变量,变量以美元符号
$
作为开头,然后通过冒号:
赋值。变量支持四种数据类型,分别为字符串、数值、布尔类型、颜色值。 - 嵌套(Nesting):SCSS 支持嵌套并且支持代码块的嵌套,它可以清晰的表示元素之间的关系。
- 导入(@import):Sass 支持
@import
指令,该指令允许我们将一个文件的内容导入到另一个文件中。该指令包含 CSS 文件,因此不需要额外的调用 HTTP,而由于性能问题,CSS 指令每次调用都会创建一个额外的HTTP,在这里 Sass 就没有这样的问题。 - 混入(mixin):Sass 中可以使用
@mixin
来声明混合,混合中包含一段合法 Sass 代码,类似于 C 语言的宏定义,解释器在调用混合时会将它扩展成它所包含的完整 Sass 代码,可以有效的减少代码重复,从而写出的代码更加干净简洁。 - 继承(@extend):该指令允许我们将一组 CSS 属性从一个选择器共享到另一个选择器。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。