将嵌套的sass映射隔离到新映射中
如何将嵌套的sass映射隔离到新映射中?例如,我有这样的sass映射:将嵌套的sass映射隔离到新映射中,sass,susy,sass-maps,Sass,Susy,Sass Maps,如何将嵌套的sass映射隔离到新映射中?例如,我有这样的sass映射: $susy-setting: ( s: ( 'columns': 4, 'gutters': 30px, ), m: ( 'columns': 8, 'gutters': 30px, ), l: ( 'columns': 12, 'gutters': 30px, ) ); 然后我需要在循环之后隔离内部的每个映射,因为我的另一个mixin需要映射作为
$susy-setting: (
s: (
'columns': 4,
'gutters': 30px,
),
m: (
'columns': 8,
'gutters': 30px,
),
l: (
'columns': 12,
'gutters': 30px,
)
);
然后我需要在循环之后隔离内部的每个映射,因为我的另一个mixin需要映射作为它的参数
@each $setting in $susy-setting{
@include susy-settings-block($setting) { // This mixin need map
@for $i from 1 through map-get($setting, 'columns') {
@content;
}
}
}
要回答主要问题,您需要在循环中同时获取键和值:
@each$size,$susy setting中的$setting
。$size
变量将存储键(例如s
,m
,l
),而$setting
变量将存储分配给该键的映射值
编辑:我看到你对我的要点的评论,这提供了更多的上下文。试试这个:
@mixin susy-settings-block(
$name,
$config: $susy-settings
) {
// store the old settings
$global: $susy;
// Get the new settings by name
$new: map-get($config, $name);
// apply the new settings
$susy: map-merge($susy, $new) !global;
// allow nested styles, using new settings
@content;
// return to the initial settings
$susy: $global !global;
}
你终于来了,米里亚姆:)。我想我们必须转向gist,因为我的代码仍然不起作用。对不起,我好像没有收到Gist的通知。你能把链接贴在这里吗?当然可以。这里是链接