使用逗号的Sass变量不能处理map-remove方法

时间:2016-02-10 05:35:41

标签: sass

我想从sass地图中删除多键,像这样的代码

$breakpoint: (
  xs: (
    min-width: 0
  ),
  sm: (
    min-width: 481
  ),
  md: (
    min-width: 768
  )
) !default;

$breakpoint-remove: xs, sm !default; // i need remove xs and sm key

@mixin test($map: $breakpoint) {
  $map: map-remove($map, $breakpoint-remove); // not working

  justForOutput:  $map; // not working
}

@include test();

如果变量$breakpoint-remove具有带逗号的多值,则它不起作用,但适用于单值。

如何开展工作?感谢。

1 个答案:

答案 0 :(得分:-1)

map-remove可以删除多个密钥,但它们必须作为单独的参数传递,而不是作为列表传递:

map-remove($map-breakpoints, xs, sm)

在这种情况下(注意括号&{39}和...):

$breakpoint-remove: (xs, sm) !default;
[...]
$map: map-remove($map, $breakpoint-remove...);

正如here所解释的那样,...告诉编译器填写列表,就像它被调用一样:

$map: map-remove($map, xs, sm);

编辑:重写以包含来自重复帖子的相关信息