我正在尝试从Sass中的嵌套地图中获取值和键(特别是使用libsass)。
我已经成功遍历父地图,但我需要获取每个子地图中每个项目的值和键。
这一切都在Sassmeister上,这可能是最容易看到它的地方:http://sassmeister.com/gist/04ba839b0edff4b84a93
我的地图:
$grids: (
2: (
$med-2: 2,
),
3: (
$med-2: 2,
$max-width: 3
),
4: (
$med-2: 2,
$med-3: 3,
$max-width: 4
),
5: (
$med-2: 2,
$med-3: 3,
$large-1: 4,
$max-width: 5
),
6: (
$med-2: 2,
$med-3: 3,
$large-1: 5,
$max-width: 6
)
);
我的混音:
@mixin media-grid($base-class: "media-grid") {
.#{$base-class} {
border: 1px solid black;
}
@each $cols, $bp in $grids {
.#{$base-class}--#{$cols} li {
@for $i from 1 through length($bp) {
@media ( min-width: map-deep-get($grids, $cols, $i) ) {
// min-width: Should be the key. $i is certainly incorrect.
max-width: 100/$cols + %;
// Instead of $cols, should divide by the value
}
}
}
}
}
供参考:也是其中的一部分,但功能正常:
@function map-deep-get($map, $keys...) {
@each $key in $keys {
$map: map-get($map, $key);
}
@return $map;
}