如果ID属性应该是唯一的,为什么*#uniqueID选择器存在?

时间:2012-02-03 20:15:32

标签: html css

我知道有一个*.className选择器,因为可以有多个带有class = className的html元素。

但是对于应该唯一的ID属性,为什么*#存在,我们何时才使用它?

感谢。

3 个答案:

答案 0 :(得分:2)

*匹配任何元素,而非所有元素。它被称为通用选择器

所以*#myid匹配id等于myid的任何元素。在CSS中,它并不重要,它等同于#myid

Source

答案 1 :(得分:1)

仅仅因为ID应该是唯一的并不意味着它们是唯一的。您可以使用相同的ID创建多个元素,但不应该。 CSS无论如何都不关心,缺乏独特性只会搞砸Javascript。例如,如果你有这个:

<div id='blah'>blah</div>
<div id='blah'>blah</div>
<div id='blah'>blah</div>
<div id='blah'>blah</div>

然后jQuery('#blah')返回[ div#blah ],而jQuery('*#blah')则返回[ div#blah, div#blah, div#blah, div#blah ]

jsFiddle Demo

答案 2 :(得分:1)

将通用选择器与ID,类或属性选择器组合起来没有区别:#foo*#foo相同,.bar*.bar相同,和[baz]*[baz]相同。因此,您不希望在这些情况下使用通用选择器。