当前位置: 首页 > Web前端 > CSS

Sass变量的声明和使用

时间:2023-03-30 17:19:45 CSS

什么是变量?Sass中的变量可以用来存储一些信息并重复使用。变量可以存储信息,包括字符串、数字、布尔值、颜色值等。声明变量在Sass中,你需要使用$符号来声明变量。格式为:$变量名:变量值;例子:比如我们在下面定义了一个变量,并给它赋了一个颜色值:$color:red;.xkd{color:$color;a{背景色:$color;}}执行编译命令,编译后的CSS代码如下:.xkd{color:red;}.xkda{background-color:red;}定义变量之后,当需要使用红色时,你可以直接用变量名代替颜色值。当然,现在这样看,我们还不知道为什么要用变量,也看不到变量的优点。但是如果我们在一个大项目中,定义变量是有用的。例如,我们可能会在多个地方使用相同的颜色值。如果后面需要修改颜色值,一一查找会很麻烦,而如果一旦定义了变量,只需要修改变量的值即可。默认变量Sass默认变量需要在值后加上!default。默认变量一般用来设置默认值,也就是说,当一个变量定义了一个默认值,但是出现了另一个值,不管是谁先定义的,默认值都会被覆盖。示例:看下面的代码:$fsize:14px;.xkd{$fsize:12px!default;font-size:$fsize;}编译成CSS代码后:.xkd{font-size:14px;}在上面的代码中,我们先定义一个全局变量$fsize并赋值14px,然后赋值12px到.xkd选择器中的$fsize变量。首先使用12px是合理的,但是因为一个!default,变成默认值,最终输出的CSS代码使用14px。变量作用域Sass支持两种类型的变量,局部变量和全局变量。默认情况下,全局变量在选择器外部定义。全局变量的作用域是全局的,所有选择器都可以访问。局部变量定义在选择器中,局部变量的作用域只能在当前层级有效。下面通过一个例子来看看局部变量和全局变量的使用。示例:$颜色:#ccc;//全局变量.one{$color:#eee;//局部变量background-color:$color;}.two{background-color:$color;}编译成CSS代码:.one{background-color:#eee;}.two{background-color:#ccc;}在上面的代码中,我们可以看到我们定义了一个全局变量$color,然后在.one中定义了一个局部变量$color。此时.one和.two同时引用了$color。编译成CSS代码后,.one使用局部变量的值,而.two使用全局变量的值。可见,局部变量的作用范围只在声明该变量的当前代码块内,而全局变量的作用范围是全局的。当使用一个变量时,会先在当前代码块中查找,如果找不到,则在下一层代码块中查找,直到找到为止。!global关键字我们可以使用关键字!global来设置全局变量,也就是说,只要我们在一个变量后面加上this关键字,那么这个变量就是一个全局变量。例子:我们来看一个例子:.one{$num:14px!global;font-size:$num;}.two{font-size:$num;}编译成CSS代码:.one{font-size:14px;}.two{font-size:14px;}在上面的代码中,.one选择器中的变量不能在.two选择器中访问,但是因为变量$num使用了!global关键字,所以$num变成了一个全局变量,这样就可以用.two选择器访问了。