【发布时间】:2014-02-02 22:08:27
【问题描述】:
我有一个与颜色配对的类列表,我想使用 mixin 中定义的颜色设置不同的属性(color、background、border-color、...)。
示例
colorHome = #FFF
colorParam = #999
colorDash = #000
links = {
'home': colorHome,
'param': colorParam,
'dash': colorDash
}
.dashboard-menu li
border 1px solid
+addLinks()
color clr
background clr
border-color clr
会输出到
.dashboard-menu li {
border: 1px solid;
}
.dashboard-menu li.home {
color: #fff;
background: #fff;
border-color: #fff;
}
.dashboard-menu li.param {
color: #999;
background: #999;
border-color: #999;
}
.dashboard-menu li.dash {
color: #000;
background: #000;
border-color: #000;
}
我现在拥有的 mixin,使用 block。
addLinks()
for key, value in links
clr = value
&.{key}
{block}
.dashboard-menu li
border 1px solid
+addLinks()
color clr
background clr
border-color clr
但由于某种原因,clr 设置为background 和border-color 的第一种颜色(colorHome / #FFF),并设置为color 的最后一种颜色(colorDash / #000) .
输出
.dashboard-menu li {
border: 1px solid;
}
.dashboard-menu li.home {
color: #000;
background: #fff;
border-color: #fff;
}
.dashboard-menu li.param {
color: #000;
background: #fff;
border-color: #fff;
}
.dashboard-menu li.dash {
color: #000;
background: #fff;
border-color: #fff;
}
考虑到块混合是相对较新的,它们可以用来实现我想要的吗?还是我应该考虑使用完全不同的解决方案?
谢谢
【问题讨论】:
-
对我来说看起来不错。不行吗?
-
如果您查看输出,背景和边框颜色始终相同 (#FFF),而对于 .home,它们应该是 #FFF,对于 .param 是 #999,对于 .dash 是 #000。我已经设置了我想要的输出(就在示例之后)