可选的LESS mixin变量是否可以引用另一个变量

可选的LESS mixin变量是否可以引用另一个变量,less,mixins,Less,Mixins,是否可以引用参数混合中的另一个变量 .button(@textColor : @white, @iconColor : @textColor) { color: @textColor; i { color: @iconColor } } 我希望@iconColor默认为@textColor的值 更少的编译器在抱怨。我认为您需要做一个嵌套的mixin想法来获得您想要的功能。LESS无法判断您已经设置了@textColor,并将其用作第二个参数的默认设置。相

是否可以引用参数混合中的另一个变量

.button(@textColor : @white, @iconColor : @textColor) {
    color: @textColor;
    i {
        color: @iconColor
    }
}
我希望
@iconColor
默认为
@textColor
的值


更少的编译器在抱怨。

我认为您需要做一个嵌套的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
        }
    }
}

mixin中第二个参数的用途是什么?你没有在任何地方使用它吗?你不能删除它吗?编译应该可以。我错了,我更新了代码片段。@BenFoster:我更新了我的答案以反映你更清晰的代码更新。