2014-02-15 52 views
1

雖然LESS是一個預處理器,我怎麼能做到這一點如何在CSS類之外調用LESS Mixins?

@ltr: ltr; 
@rtl: rtl; 
@dir: @rtl; 

.SetTypeFaceVariables when (@dir = @ltr) { 
    @headType: 'Segoe UI_'; 
} 
.SetTypeFaceVariables when (@dir = @rtl) { 
    @headType: Tahoma; 
} 

.SetTypeFaceVariables(); // Error is here, we cannot call Mixins here like this 

h1{ 
    font-family: @headType; 
} 

我如何定義在不同的方向@headType變量?


感謝@七階段-MAX可以找到Demo on Codepen

+0

沒有ü嘗試調用'h1'標籤內的'mixin'? – Rohit416

+0

>我們不能在這裏像這樣調用Mixins - 事實上我們可以。你用什麼少編譯器? –

+0

@ seven-phases-max我正在使用** Mindscape Web WorkBech **它是** Visual Studio擴展** –

回答

3

,因爲它是在註釋中已經提到你的榜樣編譯罰款與1.5.0或更高版本少。很可能你的IDE帶有一些過時版本的Less編譯器(1.4.2?1.3.3?)。沒關係,你只需要一個很小的修復,使代碼與古少版本兼容(下降到1.3.2):

@ltr: ltr; 
@rtl: rtl; 
@dir: @ltr; 

// the magic is in parens: 
.SetTypeFaceVariables() when (@dir = @ltr) { 
    @headType: 'Segoe UI_'; 
} 
.SetTypeFaceVariables() when (@dir = @rtl) { 
    @headType: Tahoma; 
} 

.SetTypeFaceVariables(); 

h1 { 
    font-family: @headType; 
} 
+0

在代碼中,我看不到您的代碼和我的代碼有什麼區別,您是如何將它與舊LESS版本兼容的?它是相同的代碼還是你改變了它? –

+0

Codepen演示使用較少1.5.0。答案的代碼在關鍵區別附近有其評論。 –