在一些CSS代码中我找到了这种类型的选择器
div#someid
这是否正式正确?
如果(1)的答案为是,那么在#someid之前需要 div 选择器, id 不应该是唯一的一个有效的网页?
谢谢!
答案 0 :(得分:19)
答案 1 :(得分:4)
很好。
#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,就像它是一个零边距/填充的块标签。