我在我的SCSS文件中有这个:
.class-a{
display: inline-block;
//some other properties
&:hover{
color: darken(#FFFFFF, 10%);
}
}
.class-b{
//Inherite class-a here
//some properties
}
在类b中,我想继承类a的所有属性和嵌套声明。这是怎么做到的?我尝试使用@include class-a,但这只是在编译时抛出错误。
结合Mixin和Extend
我只是偶然发现了Mixin和Extend的组合:
重用:
.block1 {box-shadow: 0 5px 10px #000;}
.block2 {box-shadow: 5px 0 10px #000;}
.block3 {box-shadow: 00 1px #000;}
动态混合:
@mixin customExtend($class){@extend .#{$class};}
使用混合:
比如:@include customExtend(block1);
H1{颜色:fff;@include customExtend (block2);}
Sass将只将mixins内容编译到扩展块中,这使得它能够在不生成重复代码的情况下组合块。扩展逻辑只把Mixin导入位置的类名放在block1中,…,……{box-shadow: 0 5px 10px #000;}