发表于: 2018-12-06 23:11:07
1 683
今天完成的事情:
1、今天继续了task11制作,感觉还是对sass不熟,出现了很多错误。
明天计划的事情:
1、明天计划完成task11,争取同时也完成task12.
遇到的问题:
1、今天主要问题还是对sass不熟,在引入sass的时候无法显示效果,还需再多加熟悉,早日熟练运用。
收获:
1、
Sass变量
我们都知道,JavaScript可以有变量、数据类型、函数等语法。而作为一门“编程式”的语言,Sass同样也具备这些语法。在接下来Sass的学习中,大家别忘了多多将Sass的语法与JavaScript的语法对比,这样更能加深理解和记忆。
这一节,我们先来介绍一下Sass中的变量。
一、Sass变量简介
在JavaScript中,声明变量都是用var。但是在Sass中,我们声明变量使用的是“$”(美元符号)开头。
语法:
说明:
我们可以看出,Sass的变量包括3部分:声明符、变量名、值。Sass变量定义的方式,跟CSS语法很相似,这个我们很容易理解。此外我们需要注意一下,定义一个Sass变量必须用“$”开头,不然编译的时候是无法识别的。
在Sass中,对于变量的取值有2种方式:(1)一般值;(2)默认值。
1、一般值
在Sass中,变量的一般值,指的是我们常见的变量值,这个值可以是数字、字符串等。
举例1:
1 2 3 4 5 | $width:10px; div { font-size:$width; } |
编译出来的CSS代码如下:
1 2 3 4 | div { font-size : 10px ; } |
举例2:
1 2 3 4 5 6 7 | $color:white; $bgColor:red; body { color:$color; background-color:$bgColor; } |
编译出来的CSS代码如下:
1 2 3 4 5 | body { color : white ; background-color : red ; } |
2、默认值
在Sass中,变量还有一种取值方式,那就是默认值。所谓的默认值,指的是给变量初始化一个默认值,这个值在后面可以根据开发的需要,使用一个“同名变量”的值覆盖掉。定义变量的默认值很简单,我们只需要在“变量值”后面加上“!default”就可以了。
举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $width:10px !default; .div1 { width:$width; } .div2 { $width:20px; width:$width; } .div3 { $width:30px; width:$width; } |
编译出来的CSS代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | .div 1 { width : 10px ; } .div 2 { width : 20px ; } .div 3 { width : 30px ; } |
分析:
想要覆盖变量的默认值很简单,我们只需要在该变量被调用之前重新定义该变量的值就可以了。变量的默认值,在实际开发特别是组件化开发中是非常有用的。当然,这里我们只需要简单了解一下即可。
二、变量的作用域
跟JavaScript的变量一样,Sass的变量也有作用域。在Sass中,变量根据作用域可以分为2种:(1)全局变量;(2)局部变量。
其中,Sass中的作用域跟JavaScript中的作用域是非常相似的。
1、全局变量
在Sass中,全局变量一般指的是在“选择器、混合宏、继承等”外部定义的变量。全局变量从定义开始,一直到整个程序结束都起作用。对于混合宏、继承这些,我们在后续章节会详细介绍。
举例:
1 2 3 4 5 | $color:red; //定义全局变量 body { color:$color; //调用全局变量 } |
编译出来的CSS代码如下:
1 2 3 4 | body { color : red ; } |
2、局部变量
在Sass中,局部变量一般指的是在“选择器、混合宏、继承等”内部定义的变量。局部变量只能在这些的内部起作用,在这些的外部是不起作用的。
举例:
1 2 3 4 5 6 7 8 9 | $color:red; //定义全局变量 body { $color:green; //定义局部变量 div { color:$color; //调用局部变量 } } |
编译出来的CSS代码如下:
1 2 3 4 | body { color : green ; } |
分析:
在这个例子中,局部变量“$color:green;”会把全局变量“$color:red;”的值覆盖,因此最终$color的值是green。对于这个,我们联系一下JavaScript中的局部变量和全局变量就不难理解了。
1、像下面这个例子,我们直接用纯CSS写不就得了,搞毛线还用变量定义一遍那么麻烦呢?
1 2 3 4 5 | $width:10px; div { font-size:$width; } |
这个简单例子,只是让小伙伴们认识一下Sass变量的用法罢了。在实际开发中,就拿绿叶学习网来说,整个网站大量地方需要用到相同的颜色值、字体大小等。如果我们只用纯CSS的方式,一旦这些颜色值等以后需要改动,我们有多少处相同地方就得手动改多少次,甚至还可能出现遗漏。但是如果我们使用变量的方式,每次改动我们只需要改变变量的值就可以了,这样极大地加快我们的开发效率和提高了网站的可维护性。
此外给小伙伴们一个实用的建议:对于需要重复使用的就定义成一个变量,对于不需要重复使用的直接用数值就行了。
评论