css层叠 权重

权重决定了哪一条规则会被浏览器应用在元素上

层叠的过程
比较优先级:优先级低,淘汰,优先级高,胜出,相同则比较特殊性
比较特殊性:特殊性低,淘汰,特殊性高,胜出,并列则比较源次序
比较源次序:源次序靠前,淘汰,源次序靠后,胜出
若属性值后跟上!important,则表示是一条重要声明

这里将选择器分为了a b c d四类  若选择器中有style 则a类加1 否则为0

如:两个不同的选择器都选中了同一个p标签    

#main .content p{

          color:green;

  }

这里#main是id选择器 则b类加1,  .content  为class选择器 则c类加1,  p是元素 则d类加1  最终结果为{0,1,1,1}

a:hover p{

  color:red;

}

这里a:hover为伪类 则c类加1  , p是元素 则d类加1  最终结果为{0,0,1,1}

现在比较两个数组{0,1,1,1}和{0,0,1,1}   显而易见  {0,1,1,1}要大  则运行#main .content p中的样式  


优先级:!important>style>id>class>元素>*

另一种较简单的方式权重记忆口诀

!important   正无穷大

一个行内样式   +1000

一个id   +100

一个属性选择器/class或者伪类   +10

一个元素名或者伪元素   +1

算出来的最终结果值最大则运用谁的样式

如果值相同 则使用后出现的选择器的样式

原文地址:https://www.cnblogs.com/zms-cyh/p/9349071.html

时间: 2024-11-09 20:38:08

css层叠 权重的相关文章

css层叠顺序

css层叠规则及各个选择器的特殊性. 1.有!important的规则的权重要高于没有的,有!important的规则优先级最高. 2.按特殊性对规则进行排序,各个选择器的特殊性为: 内联样式(即在html中声明的css)的特殊性为:1000 ID选择器的特殊性为:100 类属性值(class).伪类(:not).属性选择器([id=""])的特殊性为:10 各个元素和伪元素(:first-letter,first-line,before,after) 特殊性为:1 通配选择器(*)的

css层叠规则(层叠样式表)

CSS层叠规则是: 1.找出所有相关的规则,这些规则都包含与一个给定元素匹配的选择器. 2.按权重(!important)和来源对应用到给定元素的所有声明进行排序. 3.按特殊性对应用到给定元素的所有声明进行排序,有较高特殊性的元素权重要大于有较低特殊性的元素,0特殊性比无特殊性要强(继承). 4.按出现顺序对应用到给定元素的所有声明进行排序,后面出现的声明权重要大于前面出现的声明,即后定义的样式会覆盖前面定义的样式.(适用于特殊性一样的时候) 解读: 一.权重和来源 来源: 1.创作人员(开发

前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前端群里还发现以上观点类似的奇葩聊天,真是*** 其实,也是在很久以前,看了腾讯ISUX的一位前端工程师-麦时分享的一篇技术文章(个人站点已失效,就不贴出来了),才了解到真正的css选择器权重计算. 以下是css选择器权重计算精华所在,翻译自国外的文档(记得是W3C给出的计算规则) 如果一个声明来自s

前端开发之-------------合理利用CSS的权重----------------

什么是CSS的权重?对于前端工程师来说,这是一个很基础的问题,如果前端工程师没有深刻理解这个概念,则很难写出高质量的CSS代码. 那么到底什么是CSS的权重呢?我们又怎么来进行判定CSS的权重呢? 讨论CSS的权重,则必须想了解而且是深刻的了解CSS样式的6种基础选择器:ID选择器.类选择器.属性选择器.伪类和为对象选择器.标签选择器以及统配选择器.所有在CSS样式中定义的选择符都是由这6种基础选择符组合而成的,组合的方式也分为三种:后代选择符.子选择符.相邻选择符.(如果希望更详细的认识选择器

css层叠上下文

css层叠 stacking order #div{        background:#ddd;        border:1px solid red;        /*z-index: -1;*/        /*display:block*/        /*float: right;*/        /*display: inline-block;*/        /*z-index: auto;*/        /*z-index: 1;*/        }     

CSS 层叠规则

CSS 规则特殊性计算 特殊性 选择器的特殊性由选择器本身的组件确定.特殊性值表述为4个部分:0,0,0,0. 对于选择器中给定的各个id属性值,加0,1,0,0. 对于选择中给定的各个类属性值,属性选择或伪类,加0,0,1,0. 对于选择器中给定的各个元素和伪元素,加0,0,0,1. 结合符合通配符选择器对特殊性没有任何贡献 比较规则 因为值是从左向右排序的,所有1,0,0,0大于以0开头的所有特殊值,而不论后面的数是什么.比如,0,0,1,0比值0,0,0,13更高. 通配符的特殊性为0,0

CSS 层叠 学习笔记

看了一天控制器和视图头都大了,于是去微博上逛了逛,看到了一个讨论CSS权重的博客,于是把书翻了翻,对CSS中的层叠做一个笔记. 先从一个实例说起: 小明写了一个列表,并给里面的列表项添加了一些样式: #list li{ color: #000; } <ul id="list"> <li>Javascript</li> <li>HTML</li> <li>CSS</li> </ul> 结构写好

css层叠机制说明

css通过建立与文档的关联而实施效果.文档结构重要性不言而喻,对于建立良好的内容索引.提高可维护性.较好的可访问性:另,利于css选择器选择.继承机制. 概要地讲,层叠机制是处理对文档上应用样式时解决该应用何种样式的解决方案,涉及到重要性.特殊性.来源.顺序的问题.下面分别说明. 概要      每条声明都是有特殊性的,其特殊性由选择器组件确定.用户代理会将特殊性赋予给每条声明.由于存在选择器分组和声明分组的情况,用户代理会将它们解组出来的.然后对应个元素可能会有多条规则.这时,若都是针对相同的

css层叠选择

首先声明一下CSS三大特性——继承.优先级和层叠.继承即子类元素继承父类的样式,比如font-size,font-weight等f开头的css样式以及text-align,text-indent等t开头的样式以及我们常用的color.简单的就不演示了,强调一下font-size这个东东(虽然也有继承,但是标签不同继承的效果也不一样),比如下面的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c