美文网首页
scss 的extend和mixin的写法

scss 的extend和mixin的写法

作者: 没头脑很不高兴 | 来源:发表于2019-03-06 19:58 被阅读0次

extend

extend 是继承一个 scss 选择器内的css属性
如下代码:

.button-base {
  border: 1px solid #ddd;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  padding: 4px 7px;
}

.button-disable {
  border: 1px solid red;
  @extend .button-base; 
}
.button-active {
  border: 1px solid green;
  @extend .button-base; 
}

会被编译成

.button-base,
.button-disable,
.button-active {
  border: 1px solid #ddd;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  padding: 4px 7px;
}

.button-disable {
  border: 1px solid red;
}

.button-active {
  border: 1px solid green;
}

可以看到, 使用了 @extend 关键字后, 会给它添加和它父类一样的属性
适用情景:如上代码, 如果有很多种按钮, 这些按钮的基本样式是一样的, 比如没有outline, 内边距固定的, 只需要添加或更改几条css属性就可以生成不同的button, 那么就可以用extend

mixin

如下scss代码, 可以把backImage看成是一个函数

@mixin backImage($imageUrl) {
  background-image: $imageUrl;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.button-back {
  border: 1px solid black;
  @include backImage(url('../image/a.png'));
}

生成的css:

.button-back {
  border: 1px solid black;
  background-image: url("../image/a.png");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

mixin 可以看成是一个函数, 可以提供一些基础的属性, 同时可以传入参数调整css
适用情景: 不同button有不同的背景(图片), 但是background一堆的代码很多, 可以用mixin生成固定的代码, 也可以传入参数使其生成不同的css

相关文章

  • scss 的extend和mixin的写法

    extend extend 是继承一个 scss 选择器内的css属性如下代码: 会被编译成 可以看到, 使用了 ...

  • Scss 初识 @extend 与 @mixin

    前言 前面我们已经学习了 Scss 的基础。其实,能够运用之前的技巧已经足够了,在日常开发中,对 CSS 的熟练使...

  • Scss 基本使用 ( @extend、 @mixin、@imp

    继承( @extend )@extend 指令告诉 Sass 一个选择器的样式从另一选择器继承。如果一个样式与另外...

  • 常用 SCSS 不完全总结

    Reset.scss Mixin.scss Mobile Media.scss

  • SCSS

    变量 mixin mixin 基本用法 mixin 传一个参数 mixin 传多个参数 extend 基础知识 简...

  • Vue系列-extend.mixin

    Vue提供了静态的方法extend和mixin来扩展默认的配置,2个方法使用上有极大的不同 mixin(optio...

  • scss mixin

    /* 图片居中显示 */@mixin img-box($width,$height:$width,$border:...

  • scss mixin和placeholder的区别

    minxin会把它下面的代码每次都生成一遍,但是选择器很简练placeholder只会把下面的代码生成一遍,但是选...

  • SCSS的写法

    嵌套 1.普通嵌套 2.使用&引用父元素 比如伪类a:befor 比如多个class的调用 比如调用父元素的字符串...

  • sass中的继承

    sass中的继承需要用到@extend这个关键字语法:@extend 需要继承的选择器 例:style.scss文...

网友评论

      本文标题:scss 的extend和mixin的写法

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