变量的一部分是动态的

时间:2017-01-11 08:09:15

标签: css sass

我正在尝试在sass(s​​css)中执行以下操作,

$colors-#{$type}

但我得到

  

未定义变量$ colors -

我找到了一个引用3.3 release document的来源,他们提及,但是,我无法找到问题的解决方案。

有办法做到这一点吗?

link to scss

1 个答案:

答案 0 :(得分:0)

我认为该帖子具有误导性。我在Github上找到的每个问题(例如herehere)都建议使用地图。在https://github.com/sass/sass/issues/463上,其中一位撰稿人写道:

  

我们决定添加一个关联数据类型(也就是map / hash),它将解决这个用例。

使用地图和map-get()动态获取样式定义。您可以在mixin,函数或直接使用它。以下示例

$colors: (
  "green": #0c0,
  "blue": #00c,
  "red": #c00
);

@mixin my_color($color) {
  color: map-get($colors, $color);
}

@function my_color_func($color) {
  @return map-get($colors, $color);
}

body {
  @include my_color("green");  // use a mixin

  background-color: my_color_func("blue");  // use of a function

  border: 1px solid map-get($colors, "red");  // use directly
}

生成以下css:

body {
  color: #0c0;
  background-color: #00c;
  border: 1px solid #c00;
}