【发布时间】:2011-08-25 23:37:54
【问题描述】:
我有一个类别列表,我想从中设置背景颜色。我想将背景颜色的值保留为变量。是否可以通过字符串插值来引用变量? Sass 目前正在使用此代码向我抛出“无效 CSS”错误:
/* Category Colors */
$family_wellness_color: #c1d72e;
$lifestyle_color: #f4eb97;
$food_color: #f78f1e;
...
/* Categories */
@each $cat in family_wellness, lifestyle, food
{
.#{$cat}
{
.swatch, .bar
{
background-color: $#{$cat}_color;
}
}
}
可能吗?我真的很感激一些建议!
【问题讨论】:
-
虽然我之前没有尝试过,但我很确定这不受支持。我在interpolation 或其他适用部分下找不到它。编码愉快。
-
是的,我也没有提供非常优雅的解决方案。我真的不想为每种分类颜色创建一个类,但我倾向于这样做,所以我可以在循环中使用 @extend .#{$cat}_background_color (或其他)。
-
也许可以使用@function 或编写扩展名(我相当肯定这些变量应该可以在这些上下文中访问)。
-
Sass::Environment 是需要的上下文;它是否恰好是@function 中的
self?如果是这样,那么var(var($x).value + "_color")或类似的可能会起作用 -
嗨@pst。我在 Django 项目中独立使用 Sass 和 Compass。我的 Ruby 技能非常生疏。在谷歌搜索之后,我确实找到了一些关于如何编写自定义函数的示例。鉴于我的时间限制,我稍后将不得不回到这个问题,但我会发布我的发现。谢谢,布兰登。
标签: sass