Sass @mixin 和 @include
Sass @mixin 和 @include
@mixin
指令允许我们定义一个可以在整个样式表中重复使用的样式。
@include
指令可以将混入(mixin)引入到文档中。
@mixin 与 @include
混入(mixin)通过 @mixin
指令来定义。
Sass @mixin 语法:
@mixin name {
property: value;
property: value;
...
}
以下实例创建一个名为 "important-text" 的混入:
Sass 语法:
@mixin
important-text {
color:
red;
font-size: 25px;
font-weight: bold;
border: 1px solid blue;
}
提示: Sass 的连接符号 - 与下划线符号 _ 是相同的,也就是 @mixin important-text { } 与 @mixin important_text { } 是一样的混入!
使用混入
@include
指令可用于包含一混入:
Sass @include 混入语法:
selector {
@include mixin-name;
}
因此,包含 important-text 混入代码如下:
Sass 代码:
.danger {
@include
important-text;
background-color: green;
}
将以上代码转换为 CSS 代码,如下所示:
CSS 代码:
.danger {
color:
red;
font-size: 25px;
font-weight: bold;
border: 1px solid blue;
background-color: green;
}
混入中也可以包含混入,如下所示:
Sass 代码:
@mixin special-text {
@include
important-text;
@include
link;
@include
special-border;
}
向混入传递变量
混入可以接收参数。我们可以向混入传递变量。
定义可以接收参数的混入:
Sass Syntax:
/* 混入接收两个参数 */
@mixin bordered($color, $width) {
border:
$width solid $color;
}
.myArticle {
@include bordered(blue, 1px);
// 调用混入,并传递两个参数
}
.myNotes {
@include bordered(red, 2px); // 调用混入,并传递两个参数
}
以上实例的混入参数为设置边框的属性 (color 和 width) 。
将以上代码转换为 CSS 代码,如下所示:
CSS 代码:
.myArticle {
border: 1px solid blue;
}
.myNotes {
border: 2px solid red;
}
定义默认值
混入的参数也可以定义默认值,语法格式如下:
Sass 代码:
@mixin bordered($color: blue, $width:
1px) {
border:
$width solid $color;
}
然后,您只需要指定在包含mixin时更改的值:
Sass 代码:
.myTips {
@include bordered($color: orange);
}
浏览器前缀使用混入
浏览器前缀使用混入也是非常方便的,如下实例:
Sass 语法:
@mixin transform($property) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}
.myBox {
@include transform(rotate(20deg));
}
将以上代码转换为 CSS 代码,如下所示:
CSS 代码:
.myBox {
-webkit-transform: rotate(20deg);
-ms-transform:
rotate(20deg);
transform: rotate(20deg);
}