当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