2014-09-11 87 views
2

我有以下的mixin:少混入和變量

.iconFont(@color: @green, @font-size: 18px){ 
    color: @color; 
    font-size: @font-size; 
} 

如果我想只改變第二個變量的值,我需要編寫的第一個變量默認值?

+0

@哈里,綠色是另一個變量(綠色:#f3b600)。我的問題是:當h1使用綠色(在mixin中設置爲默認值)時,如果我只設置字體大小值,則此值將變爲彩色。 – marcelo2605 2014-09-11 13:01:04

+0

找到了你的伴侶。如果您使用Less提供的命名參數功能,則不是必需的。有關使用的詳細信息,請參閱我的答案。 – Harry 2014-09-11 13:02:34

回答

5

不,在調用函數時不需要指定第一個參數的默認值。相反,您可以使用named parameters功能顯式讓編譯器知道您在mixin調用中傳遞的值是第二個參數。

.sample{ 
    .iconFont(@font-size:14px); 
} 

上面的代碼在編譯時會產生下面的輸出。 (注:我已經設置@green#00ff00。)

.sample { 
    color: #00ff00; 
    font-size: 14px; 
} 

當使用命名參數的功能,即使在參數傳遞無關緊要的順序。例如,可以調用相同的mixin,如下所示:

.sample2{ 
    .iconFont(@font-size:24px, @color: #070707); 
} 

而且它會產生下面的輸出。

.sample2 { 
    color: #070707; 
    font-size: 24px; 
}