是否可以在参数 mixin 中引用另一个变量?
.button(@textColor : @white, @iconColor : @textColor) {
color: @textColor;
i {
color: @iconColor
}
}
我想@iconColor
默认为@textColor
.
LESS 编译器在抱怨。
我认为你需要做一个嵌套的 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
}
}
}