原文在 https://github.com/zhongxia245/blog , 欢迎 star!
Sass理解
常规的CSS是不支持变量,函数,以及一些简单的判断,计算等。只有单纯的描述,如果多个地方使用同一个颜色,或者字体大小,要修改起来比较麻烦。
因此,就有人给CSS加入了一些编程元素,这被叫做 "CSS预处理器"(css preprocessor)
常见的 CSS预处理器,有Less, Sass , Stylus
强调
- sass不是css的替代品,它只是让css变得更加高效、可维护
- 永远不要修改生成后的css
- 部署到线上的是生成的css文件,不是sass文件
sass的工作流如下图
Sass文件格式
Sass 有两种文件格式
.sass文件
.sass文件是缩进式的写法,对格式要求比较严谨,末尾不能有分号, 属性和值之间有一个空格
.test
margin: 5px 10px
font-size: 14px
color: #333
.scss文件
.scss文件 和 css 一致
.test {
margin: 5px 10px;
font-size: 14px;
color: #333;
}
Sass 的 import 导入功能
css有一个不太常用的特性,即@import导入功能,它允许在一个css文件中导入其他css文件。然而,结果是只有执行到@import规则时,浏览器才会去下载其他css文件,这会导致页面样式加载特别慢,从而容易出现页面闪的问题。
但是 sass中,使用 import则可以规避这个问题, 因为sass最终会生成一个CSS文件,在生成的时候,会把导入的CSS 给合并到CSS文件里面。
在使用@import导入sass文件时,可以省略sass文件的后缀名.sass或.scss,例如:
//a.scss
body {
background-color: #f00;
}
//style.scss
@import "a";
div {
color: #333;
}
编译后的style.css文件内容如下:
body {
background-color: #f00;
}
div {
color: #333;
}