说来惭愧,从业多年,从来没有用过 scss,一直使用less。记得当年安装 scss还得安装ruby可把我吓坏了,后来就一直绕着走。
粗浅来看没人搞 sass ,因为这玩意没有括号,只关注 scss 就可以。
今天开搞组件库,还是得学学 scss,就简单看看,如果我是架构师,我还是选less,至少安装简单。
常规用法
- 声明变量 
$my-width :10px说是$没有侵入性,比less的@好 - 嵌套、 
&标识符、变量作用域和 less一样 - 通过 
@import来加载文件,可以省略后缀 - 局部文件可以 下划线开头,局部文件不会单独编译成文件,导入的时候还可以省略下划线
 
同样小心如果 @import 导入的文件:
- 拥有 
.css后缀 导入
url()值注释和less一样 ,
//编译会丢失,/**/会进行保留
大段的代码如何复用,要考虑混合器,我们对一段样式前面添加 @mixin 标识符。后续使用 @include 进行导入。同时还可以传参
@mixin aa(color){color: $color;width:10px;height:10px;}.b{@include aa(blue)}
 @extend .className 可以通过 extend 来继承css
这些就足够用了。
高阶用法
at rules
值、规则。
设定:
$radius: 3px; // 普通值变量$-radius: 3px; // 私有成员,不能导出使用$black: #000 !default; // 追加 !default 默认值,说明可以被修改// 普通规则变量@mixin rounded {border-radius: $radius;}
导入:
@use 'xxx' as c ; // 导入文件.button {@include c.rounded; // 导入规则border-radius: c.$radius; // 导入值}
| 规则 | 作用 | 示例 | |
|---|---|---|---|
| @use | 使用其他sass的内容,包含变量 | elementPlus @use 'var.scss'@use 'var' as c 命名空间@use 'var' as *; 不要命名空间 | 
这不就是 import么 | 
| @forward | 加载样式表,并在使用的时候 | ||
| @import | |||
| @mixin | |||
| @include | |||
| @function | |||
| @extend | |||
| @at | |||
| @error | |||
| @warn | |||
| @debug | |||
| @if @each @for @while | 
