2013-02-08 68 views
0

這是我的mixin:如何在LESS CSS中直接傳遞mixin參數?

.gradient (...) { 
    background-image: -webkit-linear-gradient(@arguments); 
    background-image: -moz-linear-gradient(@arguments); 
    background-image: -ms-linear-gradient(@arguments); 
    background-image: -o-linear-gradient(@arguments); 
    background-image: linear-gradient(@arguments); 
} 

而且我試圖用這樣的:

.gradient(top, #333333 0%, #282828 100%); 

的問題是,少即是剝離了所有的逗號,因此輸出看起來是這樣的:

background-image: linear-gradient(top #333333 0% #272727 100%); 

是否有可能讓LESS逐字地傳遞參數?或者,我應該如何解決這個問題?

回答

1

爲了更好地實現你在找什麼,因爲我認爲你必須在@arguments傳遞與使用這些語法之一的文本字符串:

  1. ~"top, #333333 0%, #282828 100%"

  2. e("top, #333333 0%, #282828 100%")

語法~"value"e("value")幾乎相同。

那麼你應該打電話給你.gradient(@arguments)混入這樣的:

.gradient(e("top, #333333 0%, #282828 100%"));

+1

您可以嘗試在[less2css.org]在線(http://less2css.org/) –

+0

這是有幫助,但是沒有人知道如何將這些文字字符串分解爲多行以提高可讀性?當我嘗試時它會產生一個分析錯誤。 –

+0

嗨@michael,你可以在較小的塊中打破文字並將它們寫在多行上。如果你有'filter:〜'這樣的alpha(opacity = @ {opacity})「;'你可以這樣寫:'filter:〜」alpha「〜」(「〜」opacity「〜」=「〜」 @ {opacity}「〜」)「;' –