Css 为什么ID选择器利用类选择器?
给定一个具有类和ID的元素;如果我对元素应用带有类选择器的CSS,并使用带有ID选择器的CSS覆盖它,则会应用后者Css 为什么ID选择器利用类选择器?,css,css-specificity,Css,Css Specificity,给定一个具有类和ID的元素;如果我对元素应用带有类选择器的CSS,并使用带有ID选择器的CSS覆盖它,则会应用后者 <a class='abc' id='def' href="#"></a> <style> .abc{ color:red; } #def{ color:blue; } </style> .美国广播公司{ 颜色:红色; } #def{ 颜色:蓝色; } 为什么ID选择器利用类选择器 如果我给班级以同样的
<a class='abc' id='def' href="#"></a>
<style>
.abc{
color:red;
}
#def{
color:blue;
}
</style>
.美国广播公司{
颜色:红色;
}
#def{
颜色:蓝色;
}
为什么ID选择器利用类选择器
如果我给班级以同样的风格,给Id以同样的风格,为什么会这样
ID样式
这与jQuery无关,而与jQuery有关
特定性是浏览器决定哪些属性值与元素最相关并应用的手段
换句话说,某些选择器的优先级高于其他选择器,按此顺序排列
如果特定性相同,则样式的顺序将决定使用什么样式,后者将应用于前者等等。OP的代码根本不包含任何jQuery/javascript,因此解释这个问题的一种方法是仅使用CSS 但是为了用jQuery/javascript回答这个问题,您必须考虑跨浏览器兼容性 在jQuery中使用ID选择器基本上可以转换为普通的javascript
document.getElementByID
,这是非常通用的
但是,在jQuery中使用CSS类选择器可以理想地转换为普通的javascript文档
但实际上,它所做的可能比你想象的要多
例如,如果您签出,您可以看到IE8不完全支持getElementsbyClassName()
jQuery在这里的工作是使这些浏览器差异透明化
简而言之,选择器越复杂,jQuery处理跨浏览器差异的可能性就越大。ID只返回一个元素,因此在找到ID后搜索停止。多个元素可以有相同的类,所以搜索会一直持续到DOM的末尾。你真正想问的问题与jQuery没有任何关系,只是CSS的特殊性。但是我有一个类和一个id。谢谢你的回答,我还有一个疑问,为什么它会采用id的颜色?这里有两个完全无关的问题。请决定您要问的是哪一个。下面是idea的一个小例子:。伪类不比属性优先于类。他们都有相同的优先权。@Alohci:你要为此责备MDN贡献者。我想知道有多少读者被那篇文章误导了,什么时候会有人介入并修复它。(我说这话时完全意识到……)