是否有任何理由在CSS中包含标记名称和类或ID选择器?

时间:2010-11-03 16:02:13

标签: html css css-selectors

如果只有一个带有该属性的标记(DIV),我想知道div.class.class之间是否存在CSS选择器之间的差异。 ID同样适用:div#ID#ID

任何想法,如果有的话,是什么区别?对我来说,我在这些情况下使用班级或ID;但只是因为输入速度更快。

5 个答案:

答案 0 :(得分:5)

  1. 它们更具体,如果它们发生冲突,那么很长的版本会覆盖较短的版本。 div.foo的特异性为11,而.foo的特异性为10.
  2. 由于它们更具体,您确切知道该类适用于哪个节点名称而不是所有节点名称的通用规则,如果您拥有一个包含大量元素且具有相同类名的大型应用程序,这可能会有所帮助,它可以减少您在源/文本编辑器中找到元素的时间。

答案 1 :(得分:1)

特异性只有非常微小的差异。

p#id is (0,1,0,1)

#id is (0,1,0,0)

换句话说,与ID相比,标签本身并不具有很高的特异性,并且在我的经验中几乎从不需要依靠这种微小的特性来推翻事物。

更重要的是,NOT tag-qualifiying选择器对于浏览器渲染更有效。

答案 2 :(得分:0)

就像您一样坚持使用某个类或ID,意味着如果将HTML标记更改为其他标记,您的CSS仍将适用。

大多数情况下,这可能正是您想要的 - 类可以让您在HTML之上添加自定义意义层。

一般来说,您的选择器应该是表达您意思的最低要求。

答案 3 :(得分:0)

一旦大多数CSS已经完成,通常那些较长的选择器会派上用场。有时你想在这里和那里调整一个小东西 - 比如说 - 例如p.errordiv.error之间的差别。因此,不是添加另一个类 - 因此不得不触摸HTML - 您可以简单地向选择器添加元素名称,以获得更精细的控制。

答案 4 :(得分:-1)

不,如果您只有特定类或ID的DIV标记,则没有区别。