以下是我当前的发生编译错误的代码。
$color-1: #353a4b;
$color-2: #5563a9;
$color-3: #7184e7;
$color-4: #c788e6;
$color-5: #f76789;
@for $i from 1 through 5 {
.bg-color-#{$i} {
background-color: $color-#{$i};
}
.fg-color-#{$i} {
color: $color-#{$i};
}
}
这给了我以下错误
SassError: Undefined variable: "$color-".
我想使用sass @for定义动态样式。
.bg-color-1 {
background-color: $color-1;
}
.bg-color-2 {
background-color: $color-2;
}
...
有人可以帮助我吗? 预先感谢
答案 0 :(得分:2)
一种合适的解决方案是map
variables
,然后使用@each
循环访问它们。 Codepen。
$colors: (
color-1: #353a4b,
color-2: #5563a9,
color-3: #7184e7,
color-4: #c788e6,
color-5: #f76789,
);
@each $color in $colors {
$index: index($colors, $color);
$color: nth($color, 2);
.bg-color-#{$index} {
background-color: $color;
}
.fg-color-#{$index} {
color: $color;
}
}