CSS div#id是为了什么?

时间:2010-03-11 12:50:49

标签: css css-selectors

在一些CSS代码中我找到了这种类型的选择器

div#someid
  1. 这是否正式正确?

  2. 如果(1)的答案为是,那么在#someid之前需要 div 选择器, id 不应该是唯一的一个有效的网页?

  3. 谢谢!

6 个答案:

答案 0 :(得分:19)

  1. 是的,这是对的。
  2. 可能是因为它使选择器更具体。选择器越具体,它的优先级就越高。

答案 1 :(得分:4)

很好。

  • 样式表可能会在具有不同元素ID的页面之间重复使用
  • 显式类型为维护者提供有关元素的信息
  • 它使选择器更具体,例如覆盖#other div

答案 2 :(得分:2)

答案是它们是相同的但是在#id前使用div是多余的,删除它并没有什么坏处,只留下它占用空间。但是,有些人可能觉得它使标记更具可读性,因为它标识了id与之关联的元素类型。

我曾经读过,将div放在id前面可能会导致浏览器首先搜索所有div,而只是使用#id不会,但我必须查找该引用。

答案 3 :(得分:1)

div#someid - 选择id为someid的div  #someid - 选择id为someid的任何类型的元素

答案 4 :(得分:0)

根据我的理解,如果两个规则适用于同一个元素,CSS将根据选择器的具体情况对选择器进行排名,

#someId{
color: black;
}
.someClass{
color: green;
}

你有这个div:

<div id="someId" class="someClass">

然后胜利? (有适当的规则来管理这个特定的例子,我相信ID无论如何都会赢。)

但是说你有这些规则:

.someClass{
color: black;
}
div.someOtherClass{
color: green;
}

然后我第二条规则将胜过它,因为它更具体。

然而正如大卫指出的那样,ID通常会被评为更高,因此ID会赢得很多时间。

因此,我可以看到使用元素#id选择器

的两个原因

I)这是为了胜过一些错综复杂的规则,即div#canvas&gt; div&gt; div #main&gt; div:last-child&gt; div

II)所以你知道它指的是什么元素,即如果你的div和id为“postcodeContainer”并且你试图在html文件中找到它,它可能会更难,因为你必须查看每个元素(除非你使用IDE的搜索/查找选项),作为div#postcodeContainer,你知道你正在寻找一个div元素。

答案 5 :(得分:0)

拥有标签选择器的一个原因是它假设了一些基本的CSS,就像它是一个零边距/填充的块标签。