2013-01-17 57 views
2

是否可以引用參數混合中的另一個變量?可選的LESS mixin變量是否可以引用另一個變量

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

我想@iconColor默認爲的@textColor值。

LESS編譯器抱怨。

+0

什麼用你的mixin的第二個參數?你沒有在任何地方使用它?你不能刪除它,編譯應該會很好。 – Pevara

+0

我的錯誤,我更新了代碼片段。 –

+0

@BenFoster:我已經更新了我的答案,以反映您更清晰的代碼更新。 – ScottS

回答

3

我想你需要做一個嵌套的mixin想法來獲得你想要的功能。 LESS不能分辨出您已經設置了@textColor並將其用作第二個參數的默認設置。相反,你需要做一些類型的警戒表達。在這裏,我已經作出後衛表達嵌套混入,用於評估主要混入內的第二個參數,並作出相應的反應來獲得@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 
     } 
    } 
} 
相關問題