嗨,我有很多颜色变量.所以想做这样的事情:
$culture: #00CC66;
$party:#CC9900;
@each $i in culture, party {
.bl_#{$i}{
border-left-color: #{$#{$i}};
}
}
Run Code Online (Sandbox Code Playgroud)
用于打印:
bl_culture{border-left-color:#00cc66}
bl_party{border-left-color:#cc9900}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
谢谢
All*_*tle 21
SASS 3.3更新
使用sass 3.3的一些新功能,您可以选择变量名称并消除烦人的问题nth()
@each $name, $color in(
'red' $red,
'green' $green,
) {
.color-#{$name} {
background-color: $color;
}
}
Run Code Online (Sandbox Code Playgroud)
原始
这有点痛苦,但你可以通过一个列表,然后循环通过它.
例如:
$colorList:
"red" $red,
"green" $green
;
@each $i in $colorList{
.color-#{nth($i,1)}{
background-color:nth($i,2);
}
}
Run Code Online (Sandbox Code Playgroud)
在其他地方预先定义了这些颜色变量,你得到:
.color-red{
background-color:#FF0000
}
.color-green{
background-color:#00FF00
}
Run Code Online (Sandbox Code Playgroud)
尽管很难过,但你不能.SASS只会解析您的文件一次,所以即使您执行以下操作:
$culture: #00CC66;
$party:#CC9900;
@each $i in culture, party {
.bl_#{$i}{
border-left-color: #{'$' + $i};
}
}
Run Code Online (Sandbox Code Playgroud)
您最终会得到以下CSS:
.bl_culture {
border-left-color: $culture; }
.bl_party {
border-left-color: $party; }
Run Code Online (Sandbox Code Playgroud)
你最好的选择可能是改变你的代码:
.bl {
[...]
&.culture {
border-left-color: #00CC66
}
&.party {
border-left-color: #CC9900
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用类似的东西class="bl culture"代替class="bl_culture".
| 归档时间: |
|
| 查看次数: |
6453 次 |
| 最近记录: |