首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SCSS中动态调用变量

在SCSS中动态调用变量
EN

Stack Overflow用户
提问于 2012-05-21 03:18:19
回答 1查看 2.1K关注 0票数 5

我的网站有一系列的颜色变量,它们都是用数字表示的:

代码语言:javascript
复制
$red-1: #821B0D;
$red-2: #B13631;
$red-3: #D75B5B;
$red-4: #F18788;
$red-5: #FDB9B0;

我想设置一个动态调用它们的混入,如下所示:

代码语言:javascript
复制
@mixin link($color-name) {
    color: $#{$color-name}-2;
    &:hover {
        color: white;
        background-color: $#{$color-name}-4;
    }
}

但是,我不知道如何以这种方式调用变量。(以上语法不起作用。)

(为了避免明显的建议:我没有使用SASS的颜色函数,因为我的颜色不是由线性饱和度或亮度变化设置的。我不能在SASS中以编程方式生成它们。红色之间的亮度变化与蓝色之间的亮度变化不同,这与绿色之间的亮度变化不同。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-21 09:21:14

首先,你建议的语法不起作用的原因是,当插值被包含在属性值中时,它周围的文本(如'$‘符号)被解释为纯CSS。在interpolations上的SASS参考中记录了这一点。

我建议改用SASS lists。像这样的东西会给你提供你想要的功能:

代码语言:javascript
复制
@mixin link($color) {
    color: nth($color, 2);
    &:hover {
        color: white;
        background-color: nth($color, 4);
    }
}

$red: (#821B0D, #B13631, #D75B5B, #F18788, #FDB9B0);

.test {
    @include link($red);
}

(请注意,传递给nth() function的索引值是从1开始的,而不是从0开始。)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10676425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档