是否可以在参数化mixin中引用另一个变量?
.button(@textColor : @white, @iconColor : @textColor) {
color: @textColor;
i {
color: @iconColor
}
}
我希望@iconColor
默认为@textColor
的值。
LESS编译器正在抱怨。
答案 0 :(得分:3)
我认为你需要做一个嵌套的mixin想法来获得你想要的功能。 LESS无法判断您是否已设置@textColor
并将其用作第二个参数的默认设置。相反,你需要做一些类型的守卫表达。在这里,我已经使该保护表达式成为嵌套mixin,它评估主mixin中的第二个参数并相应地响应以获得@iconColor
集:
.button(@textColor: @white, @setIconColor: null) {
.setDefault() when (@setIconColor = null) {
.doSetting(@textColor);
}
.setDefault() when (iscolor(@setIconColor)) {
.doSetting(@setIconColor);
}
.setDefault();
.doSetting(@iconColor) {
color: @textColor;
i {
color: @iconColor
}
}
}