zoukankan      html  css  js  c++  java
  • Sass @mixin 与 @include

    @mixin 指令允许我们定义一个可以在整个样式表中重复使用的样式。

    @include 指令可以将混入(mixin)引入到文档中。


    定义一个混入

    混入(mixin)通过 @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 混入代码如下:

    实例

    .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, $ 1px) {
      border: $width solid $color;
    }

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

    实例

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

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

    Css 代码:

    p {
      border-color: blue;
      border- 1in;
      border-style: dashed; }

    h1 {
      border-color: blue;
      border- 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);
    }
  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/ygunoil/p/12469684.html
Copyright © 2011-2022 走看看