1、sass使用说明:
基于vscode开发:
- 如果要基于vscode开发,那就需要装一个小插件:Easy Sass;
2、sass语法:
(注意:这个css文件内容不能为空,要是为空了,调试台就报错了,而且css里的内容还是呈现上一次的内容,不会因为你保存了,他就变了,他是不会让自己里面没内容的;)
(1)在sass中定义变量:
- 用$符开头;
- 这样写css代码,想要什么属性直接更改变量的值即可,很方便;
- 看下面scss文件和css文件的区别;
- scss文件和css文件的区别是:scss文件能够进行变量定义,但是在css中就不显示;
- 这些变量也可以进行加减乘除的运算:
(2)if...else...分支语句:
- 语法像下面这样:@if(判断条件){要执行的代码};
- 这种条件判断语句一般是用在如果不需要这个css样式了,我们可以选择隐藏,防止代码量过于冗长;
- 隐藏和显示的方法是:定义一个变量, 当条件判断“==”号后面的值跟这个变量后面的值一样时,就显示,当后面的值跟变量值不一样时隐藏;
- 变量后面的值和if里面变量的值相等就能显示,并不是说非要是true或者false这样的值,也可以是“aaa”这样的值,只要变量的值是“aaa”,并且if里面变量的值也是“aaa”,那也可以显示;
- 在sass中只有“==”两个等于号的写法,没有“===”;
- 图示:
- 还有就是@if...@else配合使用放在选择器里用,当满足if条件了,就运用if里面的css样式,不满足就运用else里的css样式:
- 当变量isRed的值和if条件里的值相等时,就运用if里的css样式,否则就运用else里的css样式;
(3)@for循环遍历:
- from 1 to 4:从1到4不包括4;
- from 1 through 4:从1到4包括4;
- 在选择器中用变量,也就是引入参数,格式:“#{变量}”;
- from 1 to 4:
注意:运算符号前后要留有空格,就像图中scss里的“-”,如果前后没有空格就会报错;
(4)@each循环遍历:
- 用@each,li:nth-child()里的参数不能用$item了,因为它是表示颜色的,所以我们要从新定义一个参数index,用index()方法来获取参数值;第一个参数表示总库,第二个参数表示总库中的一个,index方法会把第二个参数在第一个参数里的位置查出来;
(5)混入:
当某些模块功能相同的时候,我们可以把这个功能封装成一个函数,然后不同标签在使用的时候去引入就可以了;
函数封装格式:@mixin 函数名 {}
函数引入:@include 函数名()
见代码:
函数也可以传参:
函数参数也可以设置默认值,当标签引入这个样式时,不传参的时候可以使用默认值;
(6)嵌套:
- 子标签的样式在父标签的样式里定义可以直接实现父标签的样式定义和子标签的样式定义,不用想之前那样麻烦;
- 亲孩子标签在父标签里定义:
- 比如li里面还有ul li标签,我们只想给ul下面的亲孩子li标签增加样式,就可以用;
- 如果还要给亲li标签加伪类选择器hover,怎么加呢,看下面;
- 如果是亲孩子就用“>”符号,如果要使用伪类选择器,或者选择具有active属性的亲li标签,就可以使用“&”,“&”表示的就是li自己。
(7)继承:
- 子类继承父类样式;
- 要定义好父类;
- 继承格式:@extend 父类;
(8)导入:
- 如果我们想导入别的scss文件到我们自己的scss文件,就可以用@import导入;
- 就可以直接用那个scss文件里定义的变量或者其他的东西;
1.scss文件的样式: