2013-02-17 85 views
-4

我想選擇很多不同的ID和類。例如:css選擇很多ID類

<div id="a b c d" class="e f g h i j ">Red text</div> 
#a.#b.#c.#d.e.f.g.h.i.j{color:red;} 

也試過:

#a#b#c#d.e.f.g.h.i.j{color:red;} 

的jsfiddle:http://jsfiddle.net/vHvm9/

這是行不通的。 CSS不支持這麼多選擇,還是我做錯了什麼?

+9

一個元素不能有多個ID。 – 2013-02-17 17:30:32

+0

* ID *使元素**唯一**所以你的多ID設計沒有任何意義..反正元素不能有多個* ID * – vlcekmi3 2013-02-17 17:31:11

+1

最後,你不必命名元素的_all_類到選擇它。所以在你的例子中,例如按類「e」選擇就足夠了:'.e {color:red;}'。只有當你必須更精確時,才需要更精確的選擇器。 – arkascha 2013-02-17 17:34:31

回答

3

就CSS而言,您的第二個選擇器#a#b#c#d.e.f.g.h.i.j有效,理論上可以匹配CSS中具有多個ID的元素。但是,只有當DOM實際上允許元素擁有許多ID時,這纔會起作用。在HTML中,空格不像分類名稱那樣分隔ID名稱;一個HTML元素最多隻能有一個由id屬性指定的ID,並且該ID不應該包含空格(即使瀏覽器會很樂意接受它,如果您爲此提供瞭如此糟糕的標記)。

您仍然可以通過其他方式將其他ID分配給單個元素(同樣,如果DOM允許),但絕對沒有實際的理由,除非您使用某種不明確的標記語言,而多個ID意味着一些東西。

所以,要回答你的問題:你做錯了什麼是試圖分配多個ID到一個元素。只需分配一個沒有任何空格的ID,然後按該ID進行選擇。

2

正如Jan指出,單個元素不能在HTML或XML中具有多個ID。

但是,如果你會發現,支持多個ID,那麼你應該用正確的CSS選擇器的主機語言(CSS):

#a#b#c#d.e.f.g.h.i.j{color:red;} 
+0

不知道這是你真正想要表達的。這個例子說明元素必須具有所有的id和所有的類,如選擇器中提到的那樣。 – arkascha 2013-02-17 17:37:37

+0

@arkascha:'div#c'但不是'div#c' – 2013-02-17 17:40:29

+0

對不起,不能跟着你那裏... – arkascha 2013-02-17 17:47:50