Sass 用变量作为变量名的语法

$color-primary: #108ee9;
$color-danger: #d9534f;
@each $c in primary, danger {
    .btn-#{$c} {
        border-color: $color-#{$c};
        background-color: $color-#{$c};
        color: #ffffff;
    }
}

上述代码根据当前类型,获取不同的变量,编译时报错。
如果变量名的一部分为变量,需要怎么处理?

阅读 5.9k
2 个回答

印象中没有这种用过,也查了相关资料也发现 ~。~ ,不过这样这样做

$colors: (
  primary: #108ee9,
  danger: #d9534f
);

@each $c in primary, danger {
    .btn-#{$c} {
        border-color: map-get($colors, $c);
        background-color: map-get($colors, $c);
        color: #ffffff;
    }
}
新手上路,请多包涵

$符号不能直接拼接,要转化成#{'$'}就能拼接了...网上都说不能拼接我也是很迷

#{'$'}color-#{$c}
宣传栏