2

パラメトリックミックスインで別の変数を参照することは可能ですか?

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

@iconColorデフォルトの値にしたいと思います@textColor

LESSコンパイラが文句を言っています。

4

1 に答える 1

3

必要な機能を得るには、ネストされたミックスインのアイデアを実行する必要があると思います。LESSは、がすでに設定されていることを認識できず、それを@textColor2番目のパラメーターのデフォルト設定として使用します。代わりに、ある種のガード式を実行する必要があります。ここでは、そのガード式をネストされたミックスインにして、メインミックスイン内の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
        }
    }
}
于 2013-01-17T19:59:42.423 に答える