scss介绍
SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。另外,SCSS 还能识别大部分 CSS hacks(一些 CSS 小技巧)和特定于浏览器的语法,例如:古老的 IE filter 语法。
由于 SCSS 是 CSS 的扩展,因此,所有在 CSS 中正常工作的代码也能在 SCSS 中正常工作。也就是说,对于一个 Sass 用户,只需要理解 Sass 扩展部分如何工作的,就能完全理解 SCSS。大部分扩展,例如变量、parent references 和 指令都是一致的;唯一不同的是,SCSS 需要使用分号和花括号而不是换行和缩进
在为组件添加样式时,为了样式的模块化,通常我们会使用SCSS、SASS。那么如何让我们的Angular工程支持SCSS或者SASS呢?下面将从以下两中方式来介绍:
- 创建工程时来指定
- 修改当前的工程
1、创建工程时来指定
在指定目录下运行:ng new myProject –style=scss
注:这里使用的Angular的CLI来创建工程的。
如果要指定SASS,则将scss换为sass即可。
2、修改当前工程
修改angular-cli.json文件,主要有两个地方需要修改:
将defaults中styleExt值设置为scss
rush:js;">
"defaults": {
"styleExt": "scss","component": {}
}
这样我们在运行ng g component myComponent 等命令生成文件时,默认后缀就是scss
在apps下的styles中将styles.css修改为styles.scss
rush:css;">
"apps": [
{
"root": "src","outDir": "dist","assets": [
"assets","favicon.ico"
],"index": "index.html","main": "main.ts","polyfills": "polyfills.ts","test": "test.ts","tsconfig": "tsconfig.app.json","testTsconfig": "tsconfig.spec.json","prefix": "app","styles": [
"styles.scss"
],"scripts": [],"environmentSource": "environments/environment.ts","environments": {
"dev": "environments/environment.ts","prod": "environments/environment.prod.ts"
}
}
],
angularcli 转变css工程为scss工程
方法一:
新增的时候就默认为scss
rush:plain;">
ng new My_New_Project --style=scss
方法二:
rush:js;">
"defaults": {
"styleExt": "scss",}
"styles": [
"styles.scss"
],
2、在src目录下新增文件_variables.scss
3、style.scss文件里配置如下:
rush:js;">
@import 'variables';
@import '../node_modules/bootstrap/scss/bootstrap';