CSS中的选择器优先级权重比较

作者 : 开心源码 本文共811个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共184人阅读

a{
color: red;
}
#box a{
color: green;
}
[class="box"] a{
color: gold;
}
.box a{
color: purple;
}
p a{
color: yellow;
}

hello


请问上面代码中,a标签中文字的最终颜色是什么?知道CSS选择器优先级规则的童鞋都知道,在CSS中优先级顺序如下:

ID选择器 > class选择器 > tag选择器

所以,上面代码的颜色,大家都会选择 #box a{ color: green;} 绿色。这个答案没错。 假如我们把这一条规则从style标签中移除呢,那么a标签文字的颜色应该是哪个?

答案是: purple。

a{color:red} 和 p a {color : yellow;}的优先级一定没有其它两项高,不需要考虑。在 [class=”box”] a和.box a中,后者的顺序比较考后,会覆盖之前的样式,所以颜色是purple。

这也许会是少量人的答案,不能不说不对。那么假如这中情况下呢?

 
#box{
color: green;
}

hello


不用说,大家都知道会使用style=”color: red;”属性定义的颜色,是red。

那么,css所遵从的具体规则是什么呢?

权重计算规则

  • 第零等:!important, 大过了其它任何设置。
  • 第一等:代表内联样式,如: style=””,权值为1000。
  • 第二等:代表ID选择器,如:#content,权值为0100。
  • 第三等:代表类,伪类和属性选择器,如.content,权值为0010。
  • 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
  • 第五等:通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
  • 第六等:继承的样式没有权值。

计算规则

!important 和内联样式style都属于不讲理的那种,

只需存在 !important,!important便具备最高优先级;

假如不存在 !important,存在style,那么style便具备最高优先级;

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » CSS中的选择器优先级权重比较

发表回复