2

是否可以在参数 mixin 中引用另一个变量?

.button(@textColor : @white, @iconColor : @textColor) {
    color: @textColor;
    i {
        color: @iconColor
    }
}

我想@iconColor默认为@textColor.

LESS 编译器在抱怨。

4

1 回答 1

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
        }
    }
}
于 2013-01-17T19:59:42.423 回答