Sass 在嵌套的每个循环中将映射名作为参数传递
是否可以在嵌套的每个循环中将映射名作为参数传递 例如,我们有以下几点:Sass 在嵌套的每个循环中将映射名作为参数传递,sass,Sass,是否可以在嵌套的每个循环中将映射名作为参数传递 例如,我们有以下几点: $colorsets: () !default; $colorsets: map-merge( ( "greys": "get-gray", "reds": "get-red" ), $colorsets ); @each $colorset, $value in $colorsets { /* #{$colorset} #{$value} */ @each $color, $v
$colorsets: () !default;
$colorsets: map-merge(
(
"greys": "get-gray",
"reds": "get-red"
),
$colorsets
);
@each $colorset, $value in $colorsets {
/* #{$colorset} #{$value} */
@each $color, $value in $colorset {
/* #{$color} #{$value} */
// do some stuff
}
}
其中灰色
和红色
也是带有一些颜色的贴图
我的目标是从第一个循环收集映射名,并将其作为参数传递给第二个循环。问题是编译器将变量作为文本,而不是映射 问题解决了。解决方案是将映射变量作为值放入main
$colorsets
map中,就像映射数组一样:
$colorsets: () !default;
$colorsets: map-merge(
(
0: $greys,
1: $reds // and so on
),
$colorsets
);
显然,这应该在所有定义的颜色贴图之后出现。嵌套循环如下所示:
@each $index, $colorset in $colorsets {
/* #{$index} */
@each $color-name, $color in $colorset {
/* #{$color-name} #{$color} */
// do stuff here
}
}
希望有人会觉得这个有用