导航
×
   ❮   
HTML CSS JavaScript PHP Go Sass W3C ECMS

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

Copyright ©2020-2026 freew3c.com All Rights Reserved 提供的内容仅用于学习和测试,不保证内容的正确性。