# Sass 变量
变量用于存储一些信息,它可以重复使用。
Sass 变量可以存储以下信息:
- 字符串
- 数字
- 颜色值
- 布尔值
- 列表
- null 值
Sass 变量使用 $ 符号:
$bgcolor: lightblue;
$textcolor: darkblue;
$fontsize: 18px;
1
2
3
2
3
就可以多次使用:
body {
background-color: $bgcolor;
color: $textcolor;
font-size: $fontsize;
}
1
2
3
4
5
2
3
4
5
# Sass 作用域
Sass 变量的作用域只能在当前的层级上有效果
$myColor: red;
h1 {
$myColor: green; // 只在 h1 里头有用,局部作用域
color: $myColor;
}
p {
color: $myColor;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# !global
使用 !global 关键词来设置变量是全局的:
$myColor: red;
h1 {
$myColor: green !global; // 全局作用域
color: $myColor;
}
p {
color: $myColor;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# Sass 嵌套规则与属性
Sass 嵌套 CSS 选择器类似于 HTML 的嵌套规则
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li {
display: inline-block;
}
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Sass 嵌套属性
font: {
family: Helvetica, sans-serif;
size: 18px;
weight: bold;
}
text: {
align: center;
transform: lowercase;
overflow: hidden;
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# Sass @import
Sass 可以帮助我们减少 CSS 重复的代码,节省开发时间。
创建一个 reset.scss 文件:
html,
body,
ul,
ol {
margin: 0;
padding: 0;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
在另一个css里面使用导入(包含文件时不需要指定文件后缀,Sass 会自动添加后缀 .scss)
@import "reset";
body {
font-family: Helvetica, sans-serif;
font-size: 18px;
color: red;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# Sass @mixin 与 @include
@mixin 指令可以定义一个可以在整个样式表中重复使用的样式。
@include 指令可以将混入(mixin)引入到文档中。
创建混入
@mixin important-text {
color: red;
font-size: 25px;
font-weight: bold;
border: 1px solid blue;
}
1
2
3
4
5
6
2
3
4
5
6
使用混入
.danger {
@include important-text;
background-color: green;
}
1
2
3
4
2
3
4
混入中也可以包含混入,如下所示:
@mixin special-text {
@include important-text;
@include link;
@include special-border;
}
1
2
3
4
5
2
3
4
5
# 向混入传递变量
混入可以接收参数。
定义可以接收参数的混入:
/* 混入接收两个参数 */
@mixin bordered($color, $width) {
border: $width solid $color;
}
.myArticle {
@include bordered(blue, 1px); // 调用混入,并传递两个参数
}
.myNotes {
@include bordered(red, 2px); // 调用混入,并传递两个参数
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
可变参数:
@mixin box-shadow($shadows...) {
-moz-box-shadow: $shadows;
-webkit-box-shadow: $shadows;
box-shadow: $shadows;
}
.shadows {
@include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9