CSS权重及样式优先级问题

  1. CSS权重值计算

一条样式规则的整体权重值包含四个独立的部分:[A, B, C, D];

(1) A 表示内联样式(写在标签的style属性中),只有 1 或者 0 两个值;对于内联样式,由于没有选择器,所以 B、C、D 的值都为 0,即 A=1, B=0, C=0, D=0(简写为 1,0,0,0,下同)。

(2)B 表示规则中 ID 的数量;(如,#header 这样的选择器,计算为 0, 1, 0, 0)。

(3)C 表示规则中除了 ID、标签和伪元素以外的其它选择器数量,包括类选择器、属性选择器等;(如, .logo[id=‘site-logo‘] 这样的选择器,计算为 0, 0, 2, 0)。

(4)D 表示规则中标签和伪元素的数量;(如,p:first-letter 这样的选择器,计算为0, 0, 0, 2)。

2. CSS样式优先级

!important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 通配符 > 继承!!! 根据 CSS 规范,具体性越明确的样式规则,权重值越高。

(1)有 !important标记的属性权重值无视没用!important 指定的一切情况;

(2)多次指定 !important  时,相互抵销。

(3)inherit而来的属性定义,优先级低于任何直接指定的属性值。

3.  CSS权重值比较

  • 根据规范,计算权重值时,A, B, C, D 四组值,从左到右,分组比较,从高位到低位(从 A 到 D)分别比较,高位相同才需要比较低位,即如果 A 相同,比较 B, 如果 B 相同,比较 C, 如果 C 相同,比较 D, 如果 D 相同,后定义的优先。
时间: 2024-12-24 09:31:15

CSS权重及样式优先级问题的相关文章

css调试与样式优先级

如何查看一个标签的当前css样式 如上图所示 先用标签选择器选择某个标签 然后在elements区域就会自动找到该标签 然后在右侧的styles区域整个区域都是该标签的样式,从上到下是显示的优先级,被划掉的Style就是说明是被另一个样式覆盖了 把鼠标移动到style的样式上,会在每个样式上显示一个复选框,点击选中或者不选中就能本地调试样式 还能自己手动在element.style{}里面写上样式,element.style区域的css样式就是行内样式的意思,是最高级的样式 还能看到该样式的文件

权重和层叠规则决定了CSS样式优先级

一.基本的优先级规则 比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级别的优先级如下: important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 通配符 > 继承 二.CSS权重规则 在<页面重构中的模块化设计>中提到,影响CSS样式权重,有两个重要因素: A:样式的优先级跟样式定义的顺序有关 B:权值的大小跟选择器的类型和数量有关 一般来说,在同一个CSS文件中,如果有两个同名的样式

css中的继承、层叠、样式优先级机制

一.继承与层叠: 注: 可继承的样式: font-size font-family color ul li dl dt dd; 不可继承的样式:border padding margin width height ; 二.样式优先级机制: 1.css中的选择器有如下几类: 1.id选择器( # myid) 2.类选择器(.myclassname) 3.标签选择器(div, h1, p...) 4.相邻选择器(h1 + p) 5.子选择器(ul > li) 6.后代选择器(li a) 7.通配符选

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

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

CSS:权重和层叠规则决定了其优先级

来源:http://www.ido321.com/1063.html 首先,给大家看一篇关于CSS优先级的示例:http://www.ido321.com/76.html 一.基本的优先级规则 比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级别的优先级如下: important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 >  通配符 > 继承 二.CSS权重规则        在<页面重构中的模块化

CSS 样式优先级

首先,选择器优先级顺序 优先级逐级增加的选择器列表: 通用选择器(*) 元素(类型)选择器 类选择器 属性选择器 伪类 ID 选择器 内联样式 !important 规则例外,该样式声明会覆盖CSS中任何其他的声明. 一些经验法则: Never 永远不要在全站范围的 css 上使用 !important Only 只在需要覆盖全站或外部 css的特定页面中使用   !important Never 永远不要在你的插件中使用 !important Always 要优化考虑使用样式规则的优先级来解决

css部分样式整理-特殊字体格式、导航栏固定、块级元素与行内元素、html 元素的margin与padding默认值、css样式优先级概括等

1.一些特殊字体样式: 首行缩进2字符:{text-indent:2em;} 水平居中:{text-align:center;} 两端对齐:{text-align:justify;} 垂直居中:{vertical-align: middle;} 字间距2字符:{letter-spacing:2em;} 行间距2倍:{line-height:2;}     2.导航栏固定在页面某处(相对于<body>):     {position:fixed;left:  px;top:  px;}  3.块

Css样式优先级

当创建的样式表越来越复杂时,一个标签的样式将会受到越来越多的影响,这种影响可能来自周围的标签,也可能来自其自身.下面我们从这两方面去看看 CSS 样式的优先级. CSS 的继承性 CSS 的继承特性指的是应用在一个标签上的那些 CSS 属性被传到其子标签上.看下面的 HTML 结构: <div> <p></p> </div> 如果 <div>有个属性 color: red,则这个属性将被 <p> 继承,即 <p> 也拥有属

css权重计算方法浅谈

在这之前只知道css权重的皮毛,比如说:行内权重比头部权重高,头部比外部样式权重高----工作中才知道真正理解css权重重要性.理解权重了才能写出来最优css选择器来.对后面学习less,scss有很大帮助. 从css代码存放的位置来看,权重计算当然是--->内嵌样式 > 内部样式表 > 外联样式表!然而工作中我们的css代码都是写在外联样式表中的咯. 参考w3c样式选择器权重优先级是这个样子的 important > 内嵌样式 > ID > 类 > 标签 | 伪