浅谈CSS层叠机制
css中为什么要有层叠机制
因为在css中可能会有多个样式同时影响同一个元素的某个属性,层叠机制可以解决作者(写代码的人),用户(浏览页面的人)和用户代理(一般指浏览器)的样式冲突。
在层叠中每个样式规则都有一个权重值,当其中几条规则同时生效时,权重最大的规则优先。一般来说作者指定的样式权重值高于用户样式权重值,用户样式权重高于客户端(用户代理)权重值。一般权重值跟对象,是否有!important,特异度和位置先后有关。在层叠顺序中,以下权重值从小到大
(1)用户代理样式
(2)用户一般样式
(3)作者一般样式
(4)作者重要样式(!important)
(5)用户重要样式(!important)
(6)如果是两个样式来自相同的代码,如都来自作者(代码),并且它们的样式声明同样重要,则根据特异度来计算,特异度高的会覆盖特异度低的
(7)如果特异度也相同,则越往后的样式优先级越高
为什么用户设置的重要样式比作者重要样式优先级高,这样做的原因是为了方便用户实现一些特殊的要求,例如页面字体大小的调整等。
选择器特异度的计算
(1)如果一个声明出现在元素的style属性中,则将a计为1;
(2)b等于选择器中所有ID选择器加起来的数量和
(3)c等于选择器中所有class选择器和属性选择器,以及伪类选择器加起来的数量和
(4)d等于选择器中所有标签选择器和伪元素选择器加起来的数量和
a-b-c-d即是选择器的特异度,比较顺序从a先比起,谁先大则优先级就越高。
注意:
- 继承的优先级最低,没有特异度
- 结合符(如+,>)及通用选择符(*)特异度为0
.box{} /*特异度=0,0,1,0*/ .box div{} /*特异度=0,0,1,1*/ #nav li{} /*特异度=0,1,0,1*/ p:first-line{} /*特异度=0,0,0,2*/ style="" /*特异度=1,0,0,0*/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
- 这篇文章主要介绍了CSS样式继承和层叠的相关资料,需要的朋友可以参考下2017-04-21
- 下面小编就为大家带来一篇css照片有如层叠效果的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-09-02
- 下面小编就为大家带来一篇浅谈CSS中的继承性,特殊性,层叠性和重要性。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-08-09
- 这篇文章主要介绍了CSS特殊性、继承与层叠的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下2016-07-14
- 这篇文章主要介绍了解决CSS3的opacity属性带来的层叠顺序问题的方法,主要针对opacity的属性值小于1的层会覆盖在其他层之上的问题,需要的朋友可以参考下2016-05-09
- 下面小编就为大家带来一篇深入理解CSS定位与层叠。小编觉得挺不错的,现在分享给大家,也给大家做个参考2016-04-15
- 这篇文章主要介绍了CSS中的z-index属性在层叠布局中的用法,详细地讲解了各种常用的层叠规则,非常推荐!需要的朋友可以参考下2016-03-05
- 这篇文章主要介绍了CSS中z-index属性对层叠顺序的处理,分情况讲解了各种曾跌情况下哪个box更靠近用户,需要的朋友可以参考下2016-03-05
- 这篇文章主要介绍了CSS的结构与层叠以及格式化,是学习CSS布局的基础知识,需要的朋友可以参考下2016-02-01
- 基本的规则为同一级别的个数,数量多的优先级高,影响CSS样式权重的两个因素即顺序、数量,下面由几个示例,大家可以感受下2014-10-20
最新评论