前言
SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。另外,SCSS 还能识别大部分 CSS hacks(一些 CSS 小技巧)和特定于浏览器的语法,例如:古老的 IE filter 语法。
由于 SCSS 是 CSS 的扩展,因此,所有在 CSS 中正常工作的代码也能在 SCSS 中正常工作。也就是说,对于一个 Sass 用户,只需要理解 Sass 扩展部分如何工作的,就能完全理解 SCSS。大部分扩展,例如变量、parent references 和 指令都是一致的;唯一不同的是,SCSS 需要使用分号和花括号而不是换行和缩进。
Angular CLI支持多种css预处理,包括:
默认值为css。
Angular有两种方式指定css预处理。下面以scss为例:
新建项目指定css预处理
在新建angular项目是使用--style指定css预处理
ng new my-project --style=scss
已有项目指定css预处理
对于已有的项目,也是支持修改css预处理。
查看.angular-cli.json,在defaults配置项里有类似下面的声明:
"defaults": { "styleExt": "css", "component": {} }
使用set指令修改styleExt
ng set defaults.styleExt scss
如果项目统一使用scss,建议把项目里的css文件改为scss,记得也要修改其他文件对css文件的引用。其中styles.css的引用在.angular-cli.json里。
参考:stories css processors
总结