繁体   English   中英

CSS / JavaScript选择器之间的区别

[英]difference between css/javascript selectors

div#name和#name有什么区别? 还是使用class或id定位某个元素有区别吗? 谢谢

例如,如果您有多个适用的规则,则第一个更为具体,在本示例中,第一种情况为“获胜”,因为它更为具体。

div#kuku {color:red}
#kuku {color:blue}

一个很好的阅读来源: http : //www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

您对在文档中一次出现的元素使用ID。 您为页面中的多个元素使用类。

div#name和#name有什么区别?

div#name

仅指代ID为“ name”的 div

而#name表示ID为“ name”的任何元素

类选择器可以应用于许多标签,而ID与单个标签唯一关联。 因此,我想说一个类选择器将返回多个元素,而一个id选择器将返回一个元素。

div#name将选择器限制为仅具有ID的DIV。

#name苹果到具有该ID的任何元素。

正如@naivists指出的那样,如果两个规则之间并发,则更明确的一个(div#name)将获胜。

ID在页面上是唯一的,并且具有更多的特异性。 换句话说,如果您有

<div id="foo" class="bar">

然后

#foo{
    background: green;
}
div#foo{
    background: red;
}    
.bar{
    background: purple;
}

将为红色。 http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html使用Darth Vader《星球大战 》对此有很好的“ 特异性战争”解释

图片在这里: http : //www.stuffandnonsense.co.uk/archives/images/specificitywars-05v2.jpg

简而言之, ID #胜过任何数量的 (。),后者又胜过任何数量的标签选择器。 例如:

# *beats* . . . .  *beats* body div div ol li p

div#name将匹配

<div id="name">foo</div>

但不是

<span id="name">foo</span>

#name将两者都匹配,但是在同一文档中不能同时使用两者,因为ID在文档中是唯一的,并且类可以是多个。

至于定位,通常会有许多具有给定类名的元素,但是id特定于单个元素。 通常,您不希望同时放置多个元素,除非仅用于1个轴。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM