我尝试遍历嵌套的sass映射以创建按钮类。这可能吗?
我的地图像这样嵌套:
$buttons: (
primary: (
border: 1px solid #ccc,
border-hover: 1px solid #ccc,
color: red,
color-hover: blue
),
secondary: (
border: 1px solid #ccc,
border-hover: 1px solid #ccc,
color: red,
color-hover: blue
)
);
当我尝试遍历每个循环时,我只获得地图的第一层。
我要实现的是,所有必要的类都使用各自的值创建。这是一个例子:
.button {
&.primary {
border: [border];
color: [color];
&:hover {
border: [border-hover];
color: [color-hover];
}
}
&.secondary {
border: [border];
color: [color];
&:hover {
border: [border-hover];
color: [color-hover];
}
}
}
每一个有用的提示我都很高兴:)
答案 0 :(得分:1)
实际上非常简单和直接。您需要做的就是在地图上使用@each
循环并使用map functions提取值。
.button {
@each $type, $styles in $buttons {
&.#{$type} {
border: map-get($styles, border);
color: map-get($styles, color);
&:hover {
border: map-get($styles, border-hover);
color: map-get($styles, color-hover);
}
}
}
}