Sass官网:https://www.sass.hk/docs/
菜鸟教程Sass:https://www.runoob.com/sass/sass-tutorial.html
Sass就是css的预处理器,Scss是Sass3版本中引入的新语法特性
vue中使用scss,安装:
cnpmi -S node-sass sass-loader
使用:
一、变量 $
使用$符号去声明一个变量
给同一个变量再次赋值时,后赋值的会替换先赋值的
可以在变量的结尾添加!default给一个未通过!default声明赋值的变量赋值,此时,如果变量已经被赋值,不会再被重新赋值,但是如果变量还没有被赋值,则会被赋予新的值。
通俗点说,!default就像一个备胎。
如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。
二、嵌套
在嵌套的代码块内,可以使用&引用父元素。比如a:hover伪类,可以写成:
a{
&:hover {color:red; }
}
三、继承 @extend
SASS允许一个选择器,继承另一个选择器。使用@extend
四、混入@mixin 、@include
Mixin是可以重用的代码块。使用@mixin命令,定义一个代码块,使用@include命令,调用这个mixin。
还可以指定参数
还可以给参数指定默认值,如果在使用时没有提供参数,则参数会使用默认值;
如果提供了参数,则会使用提供的参数覆盖默认参数的值
还可以指定多个参数
参数会按定义的顺序依次赋值
用以下的方式还可以让顺序按照自己想法来
五、引入外部文件
@import
Partials
如果需要导入 SCSS 文件,但又不希望将其编译为 CSS,只需要在文件名前添加下划线,这样会告诉 Sass 不要编译这些文件,但导入语句中却不需要添加下划线。
例如,将文件命名为_color.scss,便不会编译成_color.css文件。
@import "color.scss" 导入的其实是_colors.scss文件
(注意,不可以同时存在添加下划线与未添加下划线的同名文件,否则添加下划线的文件将会被忽略。)
六、!default,!global
!default上面已经介绍到了,可以把它理解成为一个备胎。
!global就是可以将变量提升为全局变量。不到万不得已,不要用它,因为它很简单粗暴,直接破坏了作用域规则,影响全局
七、语句
7.1 条件语句 @if,@else if,@else
7.2 循环语句 @for ,@while(平时用的比较少,暂时先了解)
@for ,@while,@each
@for $i fromthrough
@for $i fromto
$i 表示变量
start 表示起始值
end 表示结束值
这两个的区别是关键字 through 表示包括 end 这个数,而 to 则不包括 end 这个数。
具体的参考:https://blog.csdn.net/deng_gene/article/details/52399755,http://www.ruanyifeng.com/blog/2012/06/sass.html
八、自定义函数 @function
九、颜色函数
color:lighten(green, 10%);表示绿色变浅10%
color:darken(green, 10%); 表示绿色加深10%