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

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

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

    1.@mixin定义一个混入

    混入(mixin)通过 @mixin 指令来定义。 @mixin name { property: value; property: value; ... }
    @mixin important-text {
      color: red;
      font-size: 25px;
      font-weight: bold;
      border: 1px solid blue;
    }

    2.通过@include使用混入 

    @include 指令可用于包含一混入:selector {@include mixin-name;}
    .danger {
      @include important-text;
      background-color: green;
    }

    css代码:

    .danger {
      color: red;
      font-size: 25px;
      font-weight: bold;
      border: 1px solid blue;
      background-color: green;
    }

    3.混入中也可以包含混入

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

    4.向混入中传入变量

    混入可以接收参数。我们可以向混入传递变量。定义可以接收参数的混入:

    /* 混入接收两个参数 */
    @mixin bordered($color, $width) {
      border: $width solid $color;
    }
    
    .myArticle {
      @include bordered(blue, 1px);  // 调用混入,并传递两个参数
    }
    
    .myNotes {
      @include bordered(red, 2px); // 调用混入,并传递两个参数
    }

    css代码如下:

    .myArticle {
      border: 1px solid blue;
    }
    
    .myNotes {
      border: 2px solid red;
    }

    5.混入中也可以定义默认值

    @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代码如下:

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

    6.可变参数

    有时,不能确定一个混入(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代码:

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

    7.浏览器前缀使用混入

    @mixin transform($property) {
      -webkit-transform: $property;
      -ms-transform: $property;
      transform: $property;
    }
    
    .myBox {
      @include transform(rotate(20deg));
    }

    css代码:

    .myBox {
      -webkit-transform: rotate(20deg);
      -ms-transform: rotate(20deg);
      transform: rotate(20deg);
    }

    参考---https://www.runoob.com/sass/sass-mixin-include.html

  • 相关阅读:
    Spark:大数据的“电光石火”
    Android开发-取消程序标题栏或自定义标题栏
    Android中实现圆角矩形及半透明效果。
    Android中设定背景图片平铺。
    收到的电邮附件为Winmail.dat?
    Runas命令:能让域用户/普通User用户以管理员身份运行指定程序。
    AD域服务器|两台DC无法进行复制同步
    IIS服务器运行一段时间后卡死,且无法打开网站(IIS管理无响应,必须重启电脑)
    Outlook不能打开附件(提示:无法创建文件xx,请右键单击要在其中创建文件的文件夹..)
    点击自动显示/隐藏DIV代码。(简单实用)
  • 原文地址:https://www.cnblogs.com/pwindy/p/14817163.html
Copyright © 2011-2022 走看看