CSS选择器<;标签名称>#&书信电报;ID>;图案——有没有锡金图案?

CSS选择器<;标签名称>#&书信电报;ID>;图案——有没有锡金图案?,css,Css,当使用“不太好”的代码库处理web项目时,我经常在JS/CSS选择器中看到 div#myID 这似乎是错误的 上面的例子。这意味着,如果出于某种原因,您更改了id所属的标记,那么您可能有很多css需要更改 人们这么做是怎么回事?速度快吗?速度的提高值得吗?真奇怪这是一个非常糟糕的做法。根据定义,ID选择器是唯一的。包含标记或类限定符只会添加需要进行不必要评估的冗余信息。因此,这根本不是速度提升——这是一种毫无用处的减速。可能有一个这样的用例。 例如,如果内联元素使用span#myID,块元素

当使用“不太好”的代码库处理web项目时,我经常在JS/CSS选择器中看到

div#myID
这似乎是错误的

上面的例子。这意味着,如果出于某种原因,您更改了id所属的标记,那么您可能有很多css需要更改


人们这么做是怎么回事?速度快吗?速度的提高值得吗?真奇怪这是一个非常糟糕的做法。根据定义,ID选择器是唯一的。包含标记或类限定符只会添加需要进行不必要评估的冗余信息。因此,这根本不是速度提升——这是一种毫无用处的减速。

可能有一个这样的用例。 例如,如果内联元素使用
span#myID
,块元素使用
div#myID
(当然在不同的页面中),并且希望应用不同的样式

但正如@Zoltan Toth所注意到的,对于那些不熟悉CSS选择器基础知识的人来说,这通常是一种“将标记名放在以防万一”的行为


在99%的情况下,如果你选择的是ID,你应该只使用ID。它是唯一的。

也就是说,每个ID都应该是唯一的,不管它在哪个标签中。如果这些元素是互斥的,我可以看到您可以单独设置它们的样式,但即便如此,我还是建议使用两个不同(唯一)的id。使用相同的
id
的两个元素可能会导致问题(我认为在IE中)。为此使用类。这就是它们的设计目的,比如
span#myClass
div#myClass
可以有不同的样式。是的,ID应该是唯一的,这就是为什么我说(当然是在不同的页面中)。还有@Wex,您的评论很有意义——我想如果您可以将标记从div更改为span,那么您也应该能够更改ID。