以下Sass:
@mixin colourCount
.one
background: rgba(0, 160, 0, 0.5)
.two
background: rgba(255, 255, 0, 0.6)
.count
@include colourCount
.cost
@include colourCount
制作CSS:
.count .one {
background: rgba(0, 160, 0, 0.5);
}
.count .two {
background: rgba(255, 255, 0, 0.6);
}
.cost .one {
background: rgba(0, 160, 0, 0.5);
}
.cost .two {
background: rgba(255, 255, 0, 0.6);
}
Sass是否可以重复使用mixin进行制作,注意.cost
和.one
之间没有空格:
.count .one {
background: rgba(0, 160, 0, 0.5);
}
.count .two {
background: rgba(255, 255, 0, 0.6);
}
.cost.one {
background: rgba(0, 160, 0, 0.5);
}
.cost.two {
background: rgba(255, 255, 0, 0.6);
}
类似的东西:
.cost @include colourCount
会很棒,但显然不起作用。这有可能吗?
答案 0 :(得分:1)
你不能有一个兼顾两者的mixin,没有。生成第二组代码所需的mixin如下所示:
@mixin colourCount {
&.one {
background: rgba(0, 160, 0, 0.5)
}
&.two {
background: rgba(255, 255, 0, 0.6)
}
}
实际上,无论如何,你都希望将@extend
用于此目的。
%colours {
&.one {
background: rgba(0, 160, 0, 0.5)
}
&.two {
background: rgba(255, 255, 0, 0.6)
}
}
.foo {
@extend %colours;
}
.bar {
.one {
@extend %colours.one;
}
.two {
@extend %colours.two;
}
}
生成:
.one.foo, .bar .one {
background: rgba(0, 160, 0, 0.5);
}
.two.foo, .bar .two {
background: rgba(255, 255, 0, 0.6);
}