パラメトリックミックスインで別の変数を参照することは可能ですか?
.button(@textColor : @white, @iconColor : @textColor) {
color: @textColor;
i {
color: @iconColor
}
}
@iconColor
デフォルトの値にしたいと思います@textColor
。
LESSコンパイラが文句を言っています。
必要な機能を得るには、ネストされたミックスインのアイデアを実行する必要があると思います。LESSは、がすでに設定されていることを認識できず、それを@textColor
2番目のパラメーターのデフォルト設定として使用します。代わりに、ある種のガード式を実行する必要があります。ここでは、そのガード式をネストされたミックスインにして、メインミックスイン内の2番目のパラメーターを評価し、それに応じて応答して@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
}
}
}