语法:
scss中的变量,以美元符号$开头,赋值方法与 css属性的写法一样。
$color:#F00;
p {
color: $color;
}1. 说明:
- scss中的变量不能直接被JavaScript获取, 需要借助webpack工具
5条变量规则
下文的mixin和function命名也遵循1234条规则:
- 变量以美元符号
$开头,后面跟变量名; - 变量名是不以数字开头的可包含字母、数字、下划线、横线(连接符);
- 通过连接符
-与下划线_定义的同名变量为同一变量; - 变量一定要先定义,后使用;
- 写法同
css,即变量名和值之间用冒号:分隔;
2种变量作用域
- 变量作用域分为全局变量域和局部变量域:
- 全局变量:声明在最外层的变量,可在任何地方使用;
- 局部变量:嵌套规则内定义的变量只能在嵌套规则内使用。
- 将局部变量转换为全局变量可以添加
!global声明。
$color: red;
.container {
$height: 500px;
$font-size: 16px !global;
font-size: $font-size;
color: $color;
height: $height;
}
.footer {
/**$font-size使用!global 申明成全局变量了*/
font-size: $font-size;
/**
* Error: Undefined variable.
* $height是.container下的局部变量,无法在.footer下面编译
*/
height:$height;
}7种主要的数据类型
scss支持7种主要的数据类型:
- 数字,
1rem、2vh、13、 10px; - 字符串,分有引号字符串与无引号字符串,
"foo"、 'bar'、baz;scss属性也支持其他值,比如Unicode字符集,或!important声明。但是scss不会特殊对待这些属性值,一律视为无引号字符串。
- 颜色,
blue、#04a3f9、rgba(255,0,0,0.5); - 布尔型,
true和false; - 空值,
null是其类型的唯一值。表示缺少值,通常由函数返回以表示缺少结果;- 没有
undefined - 如果列表中包含空值,则生成的CSS中将忽略该空值。
- 没有
- 数组 (
list),用空格或逗号作分隔符- 实例:
1.5em 1em 0 2em,Helvetica,Arial,sans-serif;
- 实例:
maps, 相当于JavaScript的object- 实例:
(key1: value1, key2: value2);
- 实例:
- 官网中把
Function也当作一种类型,点击原文了解。
5. 声明默认值: !default
可以在变量的结尾添加!default来给变量设置默认值
有点类似Javascript的逻辑运算符let content=content || "Second content"。
注意,变量是 null时将视为未被!default赋值。
$content: "First content";
// 如果$content之前没定义就使用如下的默认值
$content: "Second content" !default;
#main {
content: $content;
}编译成css
#main {
content: "First content";
}