有没有一种方法可以本地化SCSS mixin以仅应用于特定范围?
我有下面的例子
...我有几个基本的mixin
@mixin shadow ($color) {
text-shadow: 4px 3px 0 $color, 7px 6px 0 rgba(0,0,0,.2);
}
@mixin shadow-icon ($color) {
span[class*='entypo'] {
@include shadow($color);
font-size: 156px;
}
}
Run Code Online (Sandbox Code Playgroud)
我不想为每种item颜色重复完全相同的代码。但这将是此页面的一次性样式,因此我不希望仅从此文件/范围/等任何地方访问这些内容。
是否有一种本地化或范围化混合的方法?
我想到了。Mixins使用与sass变量相同的规则,因为如果它们嵌套在一个代码块内,则它在该代码块外不可见/不可用。
因此,为此,我只是将不同的“项目”嵌套在item定义中;在定义中定义mixin item。结果是mixin只能在该item块内使用。
.item {
@mixin shadow-icon ($color) {
span[class*='entypo'] {
text-shadow: 4px 3px 0 $color, 7px 6px 0 rgba(0,0,0,.2);
font-size: 156px;
}
}
&.create {
$createColor: rgb(69, 178, 157);
background: $createColor;
@include shadow-icon($createColor);
}
&.view {
$viewColor: rgb(239, 201, 76);
background: $viewColor;
@include shadow-icon($viewColor);
}
&.report {
$reportColor: rgb(226, 122, 63);
background: $reportColor;
@include shadow-icon($reportColor);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |