这个问题在这里已有答案:
5195
2018-05-11 10:56
起源
你试过运行这段代码了吗?是否有错误(错误是什么?)?输出是否不正确? - cimmanon
引发以下错误:语法错误:“$ val:$ val +”后的无效CSS:预期表达式(例如1px,粗体)是“.dC#{$ i};” - anjiTechGuy
答案:
要正确地写出该表达式将是这样的:
$val: $val + '.dC#{$i}';
但是你忘了考虑逗号,所以你的选择器最终看起来像这样:
.dC4.dC5 {
color: black;
}
即使你确实添加了逗号,你最终会得到所有3个以逗号开头的类。有更有效的方法来执行您正在寻找的正确占用逗号的内容:
$minLevel: 1;
$whiteLevel: 3;
$blackLevel: 5;
%white {
color: white;
}
@for $i from $minLevel through $whiteLevel {
.dC#{$i} {
@extend %white;
}
}
$blackSelectors: ();
@for $i from $whiteLevel + 1 through $blackLevel {
$blackSelectors: append($blackSelectors, unquote('.dC#{$i}'), comma);
}
#{$blackSelectors} {
color: black;
}
输出:
.dC1, .dC2, .dC3 {
color: white;
}
.dC4, .dC5 {
color: black;
}
15
2018-05-11 12:38
我们同时发布,在审核了你的答案之后,我所遗漏的只是%而不是。对于选择器。谢谢! - anjiTechGuy