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

  • 相关阅读:
    CSS——background-size实现图片自适应
    Python手势识别
    Electron把网页打包成桌面应用并进行源码加密
    CSS——对position定位和margin-top的理解
    function(){}、var fun=function(){}和function fun(){}的区别
    Python+OpenCV图像处理(十六)—— 轮廓发现
    Python+OpenCV图像处理(十五)—— 圆检测
    Macbook pro快捷键
    修改MacBook Pro主机名,共享电脑名
    Mac安装java8
  • 原文地址:https://www.cnblogs.com/pwindy/p/14817163.html
Copyright © 2011-2022 走看看