2013-10-23 37 views
0

我想添加一個保護我的邊界半徑混入,這不到風度給任何輸出,如果邊界半徑爲0.我更少的代碼的偉大工程,直到我使用一個以上的論據。少CSS邊界半徑混入不爲0

.border-radius (@radius) when (@radius > 0) { 
    border-radius: @radius; 
} 

.dosnt-work { 
    .border-radius (5px 10px 5px 10px); 
} 

.works-correctly { 
    .border-radius (5px); 
} 

.works-correctly-too { 
    .border-radius (0px); 
} 

這可能沒有創建4個不同的mixin?

+0

爲什麼你要這麼做?如果要覆蓋現有邊框半徑並將其設置爲「0」,會發生什麼情況? – zzzzBov

回答

2

既然你只接受一個參數,當你使用類似「爲5px 10px的爲5px 10px的」它比較的是整個字符串爲0,一個字符串不能被合理地認爲是大於零。解決這個問題的唯一方法是爲多個參數創建另一個mixin。您可以使用相同的名稱.border-radius:只需使用多個參數再次定義它即可。根據參數的數量,LESS將鍛鍊哪個呼叫。

但是,我認爲這是一般誤導。爲什麼你想忽略零邊界半徑值?你還可以重寫以前的規則來關閉邊界半徑嗎?

0
.border-radius(@radius) when not(@radius = 0) { 
    border-radius: @radius; 
} 

注意然而,這不會像(0)參數工作,(0 0 0 0)等等