2014-03-18 11 views
1

HI,與Less和這裏的工作是什麼,我希望:變串聯 - 使用混入動態創建的類名

.createClass() { 

    @varone:one; 
    @vartwo:two; 
    @classname: @{varone}[email protected]{vartwo}; 

    [email protected]{classname} { 
     padding:.5em; 
    } 

} 
.createClass(); 

事我已經從幾searches嘗試:

@classname: '@{varone}[email protected]{vartwo}'; 

但這將呈現爲:

.testClass_'one_two' { 
     padding:.5em; 
    } 

而我讀了關於tilder ~,但可能只是爲我發現了一個搜索無良?

@classname: ~'@{varone}[email protected]{vartwo}'; 

沒有運行。


我運行節點,通過grunt less contrib


編譯如何呈現一個「不帶引號的字符串」這樣/這可能嗎?

很多謝謝,

回答

2

@classname: ~'@{varone}[email protected]{vartwo}';(或與雙引號相同)是正確的語法,適用於所有符合規範的Less編譯器。 I.e .:

.createClass() { 
    @varone: one; 
    @vartwo: two; 
    @classname: ~'@{varone}[email protected]{vartwo}'; 

    [email protected]{classname} { 
     padding: .5em; 
    } 
} 

.createClass(); 
+0

謝謝,@ seven-phases-max,我以爲我曾嘗試過,但只是再次嘗試它的工作(肯定有其他問題)感謝您花時間。 –

1

啊我找到了。

http://lesscss.org/functions/#string-functions

可以使用:

@classname: e(@{varone}[email protected]{vartwo});


e(str)過濾器是它

從我需要

有點RTFM!

+0

是的,'e(...)'只是'〜'...''的別名函數。 (儘管文檔中提到「CSS轉義,*用'〜」value「'語法替換*」,但當然可以使用兩種 - 這只是個人喜好的問題)。 –