當Web項目的工作以 '不太好' 的代碼庫,我經常看到JS/CSS選擇器寫的CSS選擇器<tag name>#<ID>模式 - 任何Siginifance?
div#myID
這似乎是錯誤的....
http://jsfiddle.net/bobber205/yeJRQ/
上面的例子。這意味着,如果由於某種原因,你改變了標籤的ID屬於,你有可能,CSS的地段改變....
這是怎麼回事的人這樣做?速度更快嗎?速度改進是否值得呢?好奇。 :P
當Web項目的工作以 '不太好' 的代碼庫,我經常看到JS/CSS選擇器寫的CSS選擇器<tag name>#<ID>模式 - 任何Siginifance?
div#myID
這似乎是錯誤的....
http://jsfiddle.net/bobber205/yeJRQ/
上面的例子。這意味着,如果由於某種原因,你改變了標籤的ID屬於,你有可能,CSS的地段改變....
這是怎麼回事的人這樣做?速度更快嗎?速度改進是否值得呢?好奇。 :P
這是一個真正壞實踐。 ID選擇器根據定義是唯一的。包括標籤或類限定符只是添加了需要不必要地評估的冗餘信息。所以根本沒有速度改進 - 這是無用的減速。
可能有一個用例。 例如,如果您有內嵌元素的span#myID
或塊元素的div#myID
(當然在不同的頁面中)並且想要應用不同的樣式。
但作爲@Zoltan托特注意到它通常的情況下,「會把標籤名稱以防萬一」的人誰不與CSS選擇器基礎知識不夠熟悉的行爲。
的情況下,99%,如果你選擇具有ID,你應該只使用ID的東西。它是獨一無二的。
話雖這麼說,每個ID應該是唯一的,不管它是在標籤的。如果這些元素是相互排斥的,我*可能*看你單獨樣式他們越來越遠,但即便如此,我會建議使用兩個不同(唯一)的ID。 – Wex 2012-07-23 22:57:26
具有相同'id'的兩個元素可能會導致問題(我認爲在IE中)。爲此使用類。這就是他們所設計的,比如'span#myClass'和'div#myClass'可以有不同的樣式。 – 2012-07-23 23:00:37
是的ID應始終是唯一的,這就是爲什麼我說「(當然在不同的頁面)」。而@Wex,你的評論很有意義 - 我想如果你可以將標記從div更改爲span,那麼你應該也可以更改ID。 – valentinas 2012-07-23 23:36:18