2013-08-30 79 views
0

我寫了一組較少的功能:當參數發送爲空白時,如何避免輸出''?

.b(@a) when (iscolor(@a)) { border:1px solid @a;} 
.b(@a) when (ispixel(@a)) { border: @a;} 
.b(@a; @b; @c) { border: @a @b @c;} 

當這樣調用

.b(none; ''; ''); 

功能我得到這樣的輸出:

border:none '' ''; 

我要找:

border:none; 

如果我使用

.b(none; ;); 

我得到這個錯誤:

expected ')' got ';'

我不希望使用更多的功能。

我正在使用Crunch進行編譯。

任何人都可以幫忙嗎?

回答

2

有很多種方法:

.b1(...) {border: @arguments} // you can use variadic args 
.b2(@values) {border: @values} // you can use "space delimited" values as a single arg 

#usage { 
    .b1(1px, solid, white); 
    .b1(2px); 
    .b2(3px dotted black); 
    .b2(4px whatever); 
} 

輸出:

#usage { 
    border: 1px solid #ffffff; 
    border: 2px; 
    border: 3px dotted #000000; 
    border: 4px whatever; 
} 

附:和「空白」參數(就像您最初嘗試的一樣)也可以工作 - 您只需要轉義值:

.b(7px, ~'', ~''); 
相關問題