这个SCSS代码
@for $i from 1 through 2 {
.style-#{$i} {
position: relative;
}
}生成这样的CSS输出:
.style-1 {
position: relative;
}
.style-2 {
position: relative;
}我希望是这样:
.style-1, .style-2 {
position: relative;
} 如何在SCSS中使用循环实现?
发布于 2016-09-21 12:47:53
您可以使用占位符选择器对规则进行分组。
Sass支持一种特殊类型的选择器,称为“占位符选择器”。这些看起来像类和id选择器,除了# or。被%替换为。它们应该与@extend指令一起使用。单独使用@extend,使用占位符选择器的规则集将不会呈现给CSS。
Sassmeister 演示.
Scss:
%common {
position: relative;
}
@for $i from 1 through 2 {
.style-#{$i} {
@extend %common;
}
}Css产出:
.style-1, .style-2 {
position: relative;
}发布于 2016-09-21 12:48:36
稍微不同的方法,但您可以通过一个SASS列表来实现这一点:
/* SASS Input */
$numbers: "1","2","3","4","5";
$selector: ();
@each $num in $numbers {
$selector: append($selector, unquote('.style-#{$num}'), 'comma');
}
#{$selector} {
position:relative;
}
/* CSS Output */
.style-1, .style-2, .style-3, .style-4, .style-5 {
position: relative;
}https://stackoverflow.com/questions/39615456
复制相似问题