CSS中为什么要有层叠机制,可以搞定什么问题
发布时间:2023-10-07 14:54:54 所属栏目:语言 来源:
导读:因为在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*/ /*特异度=1,0,0,0*/ (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐