注意: Sass 的连接符号 - 与下划线符号 _ 是相同的,也就是 @mixin important-text { } 与 @mixin important_text { } 是一样的混入。

@include 指令可用于包含一混入:

Sass @include 混入语法:

selector {
@include mixin-name ;

因此,包含 important-text 混入代码如下:

.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 ;

混入中也可以包含混入,如下所示:

@mixin special- text {
@include important- text ;
@include link ;
@include special- border ;

向混入传递变量

混入可以接收参数。

我们可以向混入传递变量。

定义可以接收参数的混入:

/* 混入接收两个参数 */
@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 ;

混入的参数也可以定义默认值,语法格式如下:

@mixin bordered ( $color : blue , $width : 1px ) {
border : $width solid $color ;

在包含混入时,你只需要传递需要的变量名及其值:

@mixin sexy- border ( $color , $width : 1in ) {
border : {
color : $color ;
width : $width ;
style : dashed ;
p { @include sexy- border ( blue ) ; }
h1 { @include sexy- border ( blue , 2in ) ; }

将以上代码转换为 CSS 代码,如下所示:

Css 代码:

border-color : blue ;
border-width : 1in ;
border-style : dashed ; }
border-color : blue ;
border-width : 2in ;
border-style : dashed ;

有时,不能确定一个混入(mixin)或者一个函数(function)使用多少个参数,这时我们就可以使用 ... 来设置可变参数。

例如,用于创建盒子阴影(box-shadow)的一个混入(mixin)可以采取任何数量的 box-shadow 作为参数。

@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 ) ;

将以上代码转换为 CSS 代码,如下所示:

Css 代码:

.shadows {
-moz-box-shadow : 0px 4px 5px #666 , 2px 6px 10px #999 ;
-webkit-box-shadow : 0px 4px 5px #666 , 2px 6px 10px #999 ;
box-shadow : 0px 4px 5px #666 , 2px 6px 10px #999 ;
@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 ) ;