css样式优先级问题
官方表述的CSS样式优先级如下:
通用选择器(*) < 元素(类型)选择器 < 类选择器 < 属性选择器 < 伪类 < ID 选择器 < 内联样式
那么,我们来举个例子:
html代码:
<div class="img-div">
<img src="data:images/icon.png" class="img" id="img" alt="img" style="width:50px" />
</div>
引入一个style.css样式:
<link type="text/css" rel="stylesheet" href="css/style.css" />
在style.css样式中写入
*{width:100px}
.img{width:400px;}
img[alt="img"] {width:300px}
img:hover{width:350px}
img{width:450px}
#img{width:250px;}
打开html可以发现

图1 ↑
可见内联式的样式权重要高于外部引用,那么我们把内联的style样式去掉,图片显示大小如图2:



图2↑ 图3↑ 图4↑
同样是外部引用的样式,ID比其他的都要优先,把#img的样式去掉,效果如图3:效果是引用了属性选择器宽度为300px
再把鼠标移动上去效果如图4。
以此类推,分别去掉属性选择器(图4),类选择器(图5),元素选择器(图6)



图4↑ 图5↑ 图6↑
再将外部引用的样式复制到html中嵌入<style></style>:
<style>
*{width:500px}
#img{width:550px;}
img[alt="img"] {width:600px}
img:hover{width:650px}
.img{width:700px;}
img{width:750px}
</style>
发现嵌入式的样式权重都要高于外部引用,最后的优先级如下:
|
内联 |
嵌入 |
外部 |
|
|
内联 |
1 |
- |
- |
|
ID 选择器 |
- |
2 |
3 |
|
伪类 |
- |
4 |
5 |
|
属性选择器 |
- |
6 |
7 |
|
类选择器 |
- |
8 |
9 |
|
元素(类型)选择器 |
- |
10 |
11 |
|
* |
- |
12 |
13 |
*上述表格从小到大,数值越小越优先!
事实上,CSS内部是按每条样式的权重值来计算优先级的,各类型选择器所对应的权重值如下:
元素, 伪元素: 1 – (0,0,0,1)
类, 伪类, 属性: 1 – (0,0,1,0)
ID: 1 – (0,1,0,0)
内联样式: 1 – (1,0,0,0)
也就相当于:
- 第一等:代表内联样式,如: style=””,权值为1000。
- 第二等:代表ID选择器,如:#content,权值为100。
- 第三等:代表类,伪类和属性选择器,如.content,权值为10。
- 第四等:代表类型选择器和伪元素选择器,如div p,权值为1。
实例:
<div class="img-div" id="img-div">
<div id="img-div1">
<img src="data:images/u484.png" class="img" id="img" alt="img" />
</div>
</div>
#img-div #img-div1 #img{width:300px}//300
#img-div #img{width:200px}//200
#img{width:150px;}//100
显示结果:

!important修改权重
如非特殊情况,慎用!important。因为使用!important会扰乱原本层叠和权重产生正常的作用顺序,使后期维护带来麻烦。
css样式优先级问题的更多相关文章
- CSS 样式优先级
首先,选择器优先级顺序 优先级逐级增加的选择器列表: 通用选择器(*) 元素(类型)选择器 类选择器 属性选择器 伪类 ID 选择器 内联样式 !important 规则例外,该样式声明会覆盖CSS中 ...
- CSS样式优先级
关于CSS样式优先级 一般情况下: [1位重要标志位] > [4位特殊性标志] > 声明先后顺序 !important > [ id > class > tag ] 使用 ...
- 强制改变css样式优先级
.list{ left:20px!important; } css !important作用是提高指定CSS样式规则的应用优先权. !important是CSS1就定义的语法,作用是提高指定样式规则的 ...
- css样式权重优先级,css样式优先级
原文:http://www.bkjia.com/Javascri... 样式选择器权重优先级: important > 内嵌样式 > ID > 类 > 标签 | 伪类 | 属性 ...
- 权重和层叠规则决定了CSS样式优先级
一.基本的优先级规则 比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级别的优先级如下: important > 内联 > ID > 类 > 标签 | ...
- 关于CSS样式优先级
一般情况下: [1位重要标志位] > [4位特殊性标志] > 声明先后顺序 !important > [ id > class > tag ] 使用!important可 ...
- css样式优先级计算规则
css样式的优先级分为引入优先级和声明优先级. 引入优先级 引入样式一般分为外部样式,内部样式,内联样式. 外部样式:使用link引入的外部css文件. 内部样式:使用style标签书写的css样式. ...
- 通过!important设置css样式优先级
CSS写在不同的地方有不同的优先级,一般 .css文件中的定义 < 元素style中的属性,但是如果使用!important,则会变得不一样,使用!important的css定义是拥有最高的优先 ...
- css样式优先级和权重问题
内联样式: <div style="font-size: 12px;">姓名</div> 外部样式: <link rel="styleshe ...
随机推荐
- Code:Base64 编码/解码
ylbtech-Code:Base64 编码/解码 1. C#返回顶部 1.编码 byte[] inArray = new byte[msgTxt.Length]; int x; ; x < m ...
- Jasper-Api:接口测试
ylbtech-Jasper-Api:接口测试 1. EditTerminal返回顶部 1. /// <remarks/> [System.Web.Services.Protocols.S ...
- 如何分析一个QT类
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 我们以QLineEdit这个类为例来看看如何学习分析一个QT类. 1.Public Types: 这是一个在这 ...
- Key and Certificate Conversion
Key and Certificate Conversion Private keys and certificates can be stored in a variety of formats, ...
- python http通信实现
http协议通信需要httpServer和httpClient. 在python中 -- httpServer的实现类是server.py文件,要跟实现tcp,udp Server的文件sockets ...
- PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的”懒人”很不方便,由于是初学者开始还想怎么在代 ...
- VMware S/4 HANA OP 1511虚拟机下载,64G内存限制解决方案
http://www.itpub.net/thread-2057212-1-1.html S4 HANA OP 1511 Scale Out
- Linux系统下使用split命令分割大文件 (转载)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://snailwarrior.blog.51cto.com/680306/140531 ...
- Dev Envirenment - Windows 10 && Visual Studio 2019 && OpenCV 4.1.0
当每天用着 C# && Winform && VS 2010 && .Net Framework 4.0 && Halcon & ...
- 洛谷P1868 饥饿的奶牛
P1868 饥饿的奶牛 题目描述 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧草.你 ...