Sass地图生成变量名称

时间:2015-04-17 09:34:23

标签: css variables dictionary sass

我在Sass中有一个带有键和值的地图

 $colors: (blue: #0081d2, green: #288600, orange: #e57323);

 @each $color, $value in $colors {
    .#{$color} {
        color: $value; 
    }
 }

这有效,并为我提供了具有适当值的css类名,例如:

 .blue{
    color: #0082d1;
 }

想要的是一个根据地图中的键生成sass变量的函数。

 $blue:  #0082d1;
 $green: #288600;

我一直在挣扎,但无法让它发挥作用。

2 个答案:

答案 0 :(得分:1)

您可以创建一个函数,通过指定的键返回值。

示例

$colors: (blue: #0081d2, green: #288600, orange: #e57323);

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

.bacon {
  color: color(blue);
}

结果

.bacon {
  color: #0081d2;
}

答案 1 :(得分:0)

地图的重点是让数据以更分层的方式构建,而不仅仅是一堆变量。如果您不想这样做,请首先定义变量而不是地图。

但我猜测你真正想要的是一种访问地图值的方法。试试这个:

map-get($colors, blue)