首页 web前端 html教程 CSS:权重和层叠规则决定了其优先级_html/css_WEB-ITnose

CSS:权重和层叠规则决定了其优先级_html/css_WEB-ITnose

Jun 24, 2016 am 11:55 AM

来源:http://www.ido321.com/1063.html


首先,给大家看一篇关于CSS优先级的示例:http://www.ido321.com/76.html

一、基本的优先级规则

        比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级别的优先级如下:

         important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 >  通配符 > 继承

二、CSS权重规则

       在《页面重构中的模块化设计》中提到,影响CSS样式权重,有两个重要因素:

            A:样式的优先级跟样式定义的顺序有关

            B:权值的大小跟选择器的类型和数量有关

       一般来说,在同一个CSS文件中,如果有两个同名的样式,则后定义的会覆盖先定义的。选择器类型的优先级见(一)。

       那么,CSS的权重是怎么算的呢?

       一个selector的权重表示方式:0.0.0.0,按照计算规则给每位填充数字,对应位置相等,则比较下一位。

       权重的计算规则如下:(为方便,用A.B.C.D代替各位置的值)

        1、内嵌样式:A=1,B=C=D=0(即1.0.0.0)

          2、ID样式:selector中带几个ID,第2位就加几个1 如#header{color:red},就是A=C=D=0,B=1(即0.1.0.0)

          3、类,伪类,以及属性的个数就是第三位的值:

                .a.b[type="text"]:hover{},选择器中有2个类,1个属性,1个伪类,所以它的第3位为4, A=B=D=0,C=4,(即0.0.4.0)

           4、伪元素和标签元素的个数就是第四位的值

                 p:first-letter,有一个标签元素p和伪元素first-letter,值为2,A=B=C=0,D=2(即0.0.0.2)

           5、通配符和继承得到的CSS属性对权重没有影响

三、几个示例

        针对以上,看以下几个示例

         1、.a .b .c {color:red;}   //0.0.3.0   说明:只有三个类

         2、*{…}         //0.0.0.0    说明:通配符对权重没有影响

         3、.a .b a {color:green} //0.0.2.1     说明:两个类和一个标签

         4、#hid {color:black;}   //0.1.0.0  说明:只有一个ID


下一篇:HTML 5 History API的”前生今世”


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验? 公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验? Mar 04, 2025 pm 12:32 PM

公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?

如何使用HTML5表单验证属性来验证用户输入? 如何使用HTML5表单验证属性来验证用户输入? Mar 17, 2025 pm 12:27 PM

如何使用HTML5表单验证属性来验证用户输入?

如何高效地在网页中为PNG图片添加描边效果? 如何高效地在网页中为PNG图片添加描边效果? Mar 04, 2025 pm 02:39 PM

如何高效地在网页中为PNG图片添加描边效果?

< iframe>的目的是什么。 标签?使用时的安全考虑是什么? < iframe>的目的是什么。 标签?使用时的安全考虑是什么? Mar 20, 2025 pm 06:05 PM

< iframe>的目的是什么。 标签?使用时的安全考虑是什么?

使用IFRAME的安全性含义是什么?如何减轻它们? 使用IFRAME的安全性含义是什么?如何减轻它们? Mar 18, 2025 pm 02:51 PM

使用IFRAME的安全性含义是什么?如何减轻它们?

HTML5中跨浏览器兼容性的最佳实践是什么? HTML5中跨浏览器兼容性的最佳实践是什么? Mar 17, 2025 pm 12:20 PM

HTML5中跨浏览器兼容性的最佳实践是什么?

我如何使用html5< time> 元素以语义表示日期和时间? 我如何使用html5< time> 元素以语义表示日期和时间? Mar 12, 2025 pm 04:05 PM

我如何使用html5< time> 元素以语义表示日期和时间?

我如何使用html5< meter> 要在范围内显示数值数据的元素? 我如何使用html5< meter> 要在范围内显示数值数据的元素? Mar 12, 2025 pm 04:08 PM

我如何使用html5< meter> 要在范围内显示数值数据的元素?

See all articles