2013-02-12 16 views
4

我旁邊CSS:LESS:如何用嵌套指定當前標籤?

.button { 
    background-color: black; 
    border-radius: 4px; 
    color: white; 
} 

a.button { 
    text-decoration: none; 
    color: white; 
} 

我想重拍不那麼,這樣的:

.button { 
    background-color: black; 
    border-radius: 4px; 
    color: white; 

    a& { 
     text-decoration: none; 
     color: white; 
    } 
} 

但它產生下一個(錯誤的)CSS:

.button { 
    background-color: black; 
    border-radius: 4px; 
    color: white; 
} 

/* unexpected space */ 
a .button { 
    text-decoration: none; 
    color: white; 
} 

哪有我做對了嗎?

+2

這似乎是一個很少的編譯器錯誤。我希望以後能解決 – Rost 2013-02-12 21:46:07

+0

看起來像是一個bug。現在,我建議只是分別編寫兩種樣式,儘管它有點冗長。 – zzzzBov 2013-02-12 21:52:11

+0

您正在編譯哪個版本的LESS?在版本1.3.0之後'a&'可以工作。 – freejosh 2013-02-12 22:01:00

回答

1

這完全是一個版本問題。正如@freejosh評論的那樣,它在LESS的最新版本中得到了解決。如果你把你的代碼放到http://less2css.org/那麼它就可以正常工作(它運行的是LESS 1.3.3,儘管你可以將版本更改爲1.3.0,並且看到它不再像你期望的那樣工作,並且把空間放進去)。

既然你聲明你正在運行lessc 1.3.0,你需要升級你的LESS版本。

1

這些元素不一定是嵌套的,因此LESS嵌套不適用。

+0

但我不想爲所有鏈接設置這種樣式... – Rost 2013-02-12 21:36:58

+0

是的,我發現這是錯誤的。答案已更新。 – isherwood 2013-02-12 21:37:38

+0

那麼,我簡化了我的例子。此外,我使用這個.button作爲其他按鈕的混合。在這種情況下,我將不得不爲每個代碼複製粘貼相同的代碼 – Rost 2013-02-12 21:39:50

0

這不是美麗的,但它的作品! :)

.button { 
    background-color: black; 
    border-radius: 4px; 
    color: white; 
} 

a,b,other{ 
    &.button{ 
     .button; 
     text-decoration: none; 
     color: white; 
    } 
} 
+0

是的,這應該適用於'.button' 但是,如果我想要使用.button作爲混入?例如: .red按鈕{0};};}} background-color:red; } 我認爲我將不得不復制粘貼代碼的第二部分:( – Rost 2013-02-12 21:52:36