美文网首页
十、sass 混合指令@mixin

十、sass 混合指令@mixin

作者: 柳暗花明又一匪 | 来源:发表于2018-01-25 15:30 被阅读0次

混合指令的用法是在 @mixin 后添加名称与样式,比如名为 large-text 的混合通过下面的代码定义:

@mixin large-text {
  font: {
    family: Arial;
    size: 20px;
    weight: bold;
  }
  color: #ff0000;
}

.title{
    @include large-text;
    background-color: red;
}

编译后:

.title {
  font-family: Arial;
  font-size: 20px;
  font-weight: bold;
  color: #ff0000;
  background-color: red; }

参数 (Arguments)

定义@mixin是可以传入参数:

@mixin transform($deg) {
    -webkit-transform: rotate($deg);
    -moz-transform: rotate($deg);
    -ms-transform: rotate($deg);
    -o-transform: rotate($deg);
    transform: rotate($deg);
}

.wrap {
    @include transform(45deg);
    width: 50px;
    height: 50px;
    background-color: red;
}

编译后:

.wrap {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 50px;
  height: 50px;
  background-color: red; }

赋予默认值,混合指令也可以使用给变量赋值的方法给参数设定默认值,然后,当这个指令被引用的时候,如果没有给参数赋值,则自动使用默认值:

@mixin transform($deg:0deg) {
    -webkit-transform: rotate($deg);
    -moz-transform: rotate($deg);
    -ms-transform: rotate($deg);
    -o-transform: rotate($deg);
    transform: rotate($deg);
}

.wrap {
    @include transform();
    width: 50px;
    height: 50px;
    background-color: red;
}

编译后:

.wrap {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 50px;
  height: 50px;
  background-color: red; }

关键词参数 (Keyword Arguments)

混合指令也可以使用关键词参数,上面的例子也可以写成:

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

使用关键词参数的好处,如果使用默认值也可以省缺,是可以打乱顺序传参。

参数变量 (Variable Arguments)

有时,不能确定混合指令需要使用多少个参数,比如一个关于 box-shadow 的混合指令不能确定有多少个 'shadow' 会被用到。这时,可以使用参数变量 声明(写在参数的最后方)告诉 Sass 将这些参数视为值列表处理:

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

编译后

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

相关文章

  • 看看sass和less会遇到的问题吧

    sass的混合指令 mixin 混合指令(Mixin)用于定义可重复使用的样式,避免了使用无语意的 class,比...

  • 十、sass 混合指令@mixin

    混合指令的用法是在 @mixin 后添加名称与样式,比如名为 large-text 的混合通过下面的代码定义: 编...

  • Sass混合的使用

    本节我们学习 Sass 中的混合,Sass 中的混合是通过 @mixin 指令来定义的,混合允许我们定义可以在整个...

  • Sass混合的使用

    本节我们学习 Sass 中的混合,Sass 中的混合是通过 @mixin 指令来定义的,混合允许我们定义可以在整个...

  • SASS - 混合(Mixin)

    SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – SASS – 语法 SA...

  • Scss中的混合宏、继承和占位符

    Sass中的混合宏、继承和占位符 一、混合宏 1.不带参数的混合宏 @mixin border-radius {-...

  • Sass: @mixin指令介绍

    为了有效的维护和开发项目,代码的重复利用就显得尤为重要。在Sass中,除了@import和@extend可以使你的...

  • 关于css预编译工具使用

    less、sass 、stylus 的@mixin 定义混合样式、@include混入样式 1、这种做法在常规使用...

  • @mixin/@include 混合指令

    混合指令用于定义可重读的样式,避免了使用无语义的class;可以通过参数功能引入变量,输出多样化的样式。 @mix...

  • sass学习6——混合器

    sass混合器用来实现大段样式的重用,用@mixin标识符定义。 通过@include来使用混合器。@includ...

网友评论

      本文标题:十、sass 混合指令@mixin

      本文链接:https://www.haomeiwen.com/subject/quyvaxtx.html