CSS中选择器优先级的权重计算
CSS中选择器优先级的权重计算
先看一段代码,如下:
``` <style>
a{
color: red;
}
#box a{
color: green;
}
[class="box"] a{
color: gold;
}
.box a{
color: brown;
}
p a{
color: yellow;
}
</style>
<p id='box' class="box"> <a>hello</a></p>
```
请问上面代码中,a标签中文字的最终颜色是什么?知道CSS选择器优先级规则的童鞋都知道,在CSS中优先级顺序如下:
ID选择器 > class选择器 > tag选择器
所以,上面代码的颜色,大家都会选择#box a{ color: green;}绿色。这个答案没错。 如果我们把这一条规则从style标签中移除呢,那么a标签文字的颜色应该是哪个?brown? orgold? Which one?
答案是: brown。
a{color:red}和p a {color : yellow;}的优先级肯定没有其它两项高,不需要考虑。在[class="box"] a和.box a中,后者的顺序比较考后,会覆盖之前的样式,所以颜色是brown。
这也许会是一些人的答案,不能不说不对。那么如果这中情况下呢?
``` <style>
#box{
color: green;
}
</style>
<p id='box' class="box" style="color: red;"> hello </p>
```
不用说,大家都知道会使用style="color: red;"属性定义的颜色,是red。
那么,css所遵从的具体规则是什么呢?
权重计算规则
- 第零等:
!important, 大过了其它任何设置。 - 第一等:代表内联样式,如: style=””,权值为1000。
- 第二等:代表ID选择器,如:#content,权值为0100。
- 第三等:代表类,伪类和属性选择器,如.content,权值为0010。
- 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
- 第五等:通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
- 第六等:继承的样式没有权值。
计算规则
!important 和内联样式style都属于不讲理的那种,
- 只要存在
!important,!important便具有最高优先级; - 如果不存在
!important,存在style,那么style便具有最高优先级; - 剩下的 “ID” 、 “类,伪类和属性” 、 “元素类型和伪元素“ 分别对应 权重值(0-a-b-c)中的 a/b/c;计算方法如下:
* /* a=0 b=0 c=0 -> specificity = 0-0-0-0 */
LI /* a=0 b=0 c=1 -> specificity = 0-0-0-1 */
UL LI /* a=0 b=0 c=2 -> specificity = 0-0-0-2 */
UL OL+LI /* a=0 b=0 c=3 -> specificity = 0-0-0-3 */
H1 + *[REL=up] /* a=0 b=1 c=1 -> specificity = 0-0-1-1 */
UL OL LI.red /* a=0 b=1 c=3 -> specificity = 0-0-1-3 */
LI.red.level /* a=0 b=2 c=1 -> specificity = 0-0-2-1 */
#x34y /* a=1 b=0 c=0 -> specificity = 0-1-0-0 */
#s12:not(FOO) /* a=1 b=0 c=1 -> specificity = 0-1-0-1 */
- 继承的样式没有权值,比其它任何类型的权值都低。
【参考资料】
CSS中选择器优先级的权重计算的更多相关文章
- CSS中选择器优先级顺序实战讲解
原文:CSS中选择器优先级顺序实战讲解 我们有些程序猿在给一个元素(比如div)应用样式的时候,会有一些疑问,为什么我写在后面的样式不能覆盖前面的样式呢,不是说CSS是层叠样式表吗? 如果你在开发中也 ...
- CSS中选择器优先级与!important权重使用
CSS中的选择器优先级与!important权重使用 .class选择器要高于标签选择器. #id选择器要高于.class选择器. 标签选择器是优先级最低的选择器. !important的属性它的权重 ...
- 【CSS】选择器优先级
CSS的选择器优先级的权重 在 Selectors Level 3 规范中,一个选择器的优先级(权重)由依次串联的a.b.c三个标记来计算 a: ID选择器 如#header b: class选择器如 ...
- 关于css中选择器的小归纳(一)
关于css中选择器的小归纳 一.基本选择器 基本选择器是我们平常用到的最多的也是最便捷的选择器,其中有元素选择器(类似于a,div,body,ul),类选择器(我们在HTML标签里面为其添加的clas ...
- CSS(二)- 选择器 - 一定要搞懂的选择器优先级和权重问题
css的优先级之前一直没怎么注意没当回事,总以为对同一元素靠后的渲染会覆盖前面的渲染,要是覆盖不了那就来个!important嘛.直到我那在学前端基础的后端伙伴拿一个问题问住了我,我才意识到这是重点中 ...
- 层叠机制和继承的概念以及CSS中选择器的优先级
层叠机制: 一个元素的某个特定的样式属性可能来自行间的style属性.内联样式表或者外部引入的样式表,以及浏览器自定义的样式,还有就是继承自父元素的样式,但是最终只会选择其中的某一个来表示,这个选择的 ...
- CSS样式选择器优先级
CSS样式选择器分为4个等级,a.b.c.d,可以以这四种等级为依据确定CSS选择器的优先级. 1.如果样式是行内样式(通过Style=””定义),那么a=12.b为ID选择器的总数3.c为Class ...
- 【CSS系列-选择器优先级总结】
转:http://www.cnblogs.com/dolphinX/p/3511300.html 容易被忽略CSS特性 CSS初学感觉很简单,但随着学习的深入才感觉CSS的水由多深,平常总会遇到各 ...
- css中选择器的使用
css是英文Cascading Style Sheets的缩写.它是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.我们再将html比喻 ...
随机推荐
- Linux查看文件内容命令:less(转)
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件. 语法 less [参数] 文件 参数说明: -b <缓冲 ...
- xtrabackup增量备份mysql +MHA
http://blog.csdn.net/yanggd1987/article/category/2214421 https://www.centos.bz/2013/09/innobackupex- ...
- HDU 4511
SHIT,SHIT,SHIT,SHIT,SHIT... 这道题可以使用AC自动机+DP来解决.也就是用非法路径建立TRIE图,然后从trie[root][1]点开始广搜DP即可.千万要注意一点,题目里 ...
- Netty In Action中文版 - 第十五章:选择正确的线程模型
http://blog.csdn.net/abc_key/article/details/38419469 本章介绍 线程模型(thread-model) 事件循环(EventLoop) 并发(Con ...
- 关于SharePoint讨论板的一些知识(2)--视图中的栏目
关于SharePoint讨论板的一些知识(2)--视图中的栏目 新建讨论后,默认显示四个栏目:主题.创建者.答复和上次更新时间. 从功能区的当前视图能够看出这是默认的主 ...
- java根据内容生成二维码图片
package util; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; ...
- C# 尝试读取或写入受保护的内存 。这通常指示其他内存已损坏。
在C#中调用别人的DLL的时候有时候出现 尝试读取或写入受保护的内存 .这通常指示其他内存已损坏. 在传值的时候还是用指针,再在C#中做转换就好了. 解决办法: [DllImport("AP ...
- VS2013+ffmpeg开发环境搭建-->【转】
本文转载自:http://blog.csdn.net/qq_28425595/article/details/51488869 版权声明:本文为博主原创文章,未经博主允许不得转载. 今天整理资料时,发 ...
- 通过top 5等待事件查看sql语句
设计的动态性能视图有:v$session_event,v$session,v$sqlarea,首先在v$session_event中可以找到event,然后通过其动态性能视图找到sid,可以在v$se ...
- java中 抽象类和抽象方法
在面向对象中,所有的对象都是由类来描绘的,但是并不是所有的类都用来描绘对象的,当一个类并不能包含完整的信息来描绘一个具体的对象时,我们把这个类称为抽象类.抽象类除了不完整的描述一个对象之外,其他的功能 ...