我使用sass
打印带有@each和@for循环的列表中的值但是当我尝试逐个打印并在css
中编译收集的值时即使使用nth('', $n)
函数,它也会获取列表中的所有值。
我使用以下code
和gulp
作为我的任务选手。
// SASS CODE
$btn-default: darken(#DDD, 5%);
$btn-alert: red;
$btn-class: "btn-default", "btn-alert";
$btn-color: $btn-default, $btn-alert;
@each $btn in $btn-class {
.#{unquote($btn)} {
@for $i from 1 through length($btn-color) {
background-color: nth($btn-color, $i);
}
}
}
/* CSS CODE : OUTPUT */
.btn-default {
background-color: #d0d0d0;
background-color: red; }
.btn-alert {
background-color: #d0d0d0;
background-color: red; }

我在sass
中以不同方式尝试的项目中有点陷入困境,当我没有得到这些值时,它只会返回错误。
答案 0 :(得分:0)
不要引入内部@for
循环,而是在每个规则集中不可避免地呈现两个属性,请尝试使用单个循环:
@for $i from 1 through length($btn-class) {
#{nth($btn-class, $i)} {
background-color: nth($btn-color, $i)
}
}
从长远来看,我建议改用地图。通过这种方式,您可以在类名和颜色之间建立明确的关联,从而避免在较大的元素列表中出现潜在错误:
$buttons: (
btn-default: $btn-default,
btn-alert: $btn-alert
);
@each $class, $color in $buttons {
.#{$class} {
background-color: $color;
}
}