我想使用如下的SCSS循环:
@each $var in dark, purple, green, cyan, silver, white {
.text-#{$var} {
color: nth($color-, $var);
}
.btn-#{$var} {
background-color: nth($color-, $var);
}
}
以使用以下变量:
$color-dark: #0D0E1E;
$color-purple: #333366;
$color-green: #33cc99;
$color-cyan: #00cccc;
$color-silver: #ccc;
$color-white: #fff;
但它不起作用。
$color-#{$var}
效果不佳。我可以这样做吗?
答案 0 :(得分:1)
nth 获取列表中的项目。第一个参数是列表,第二个参数是列表中的索引。 SASS也认为 $ 的任何内容都是变量,因此 $ color - 是一个变量。您尚未将 $ color - 定义为变量,这不是您的预期用途。
但是你可以用地图获得你想要的结果......
$color-dark: #0D0E1E;
$color-purple: #333366;
$color-green: #33cc99;
$color-cyan: #00cccc;
$color-silver: #ccc;
$color-white: #fff;
$colors: (
dark: $color-dark,
purple: $color-purple,
green: $color-green,
cyan: $color-cyan,
silver: $color-silver,
white: $color-white
);
@each $name, $val in $colors {
.text-#{$name} {
color: $val;
}
.btn-#{$name} {
background-color: $val;
}
}