CSS的优先级及样式覆盖问题探讨

多重样式(Multiple Styles): 如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况.有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式。

样式的优先级
多重样式(Multiple Styles):
如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况。
一般情况下,优先级如下:
(外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style。
有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式。

示例如下:

<head>
<style type="text/css">
/* 内部样式 */
h3{color:green;}
</style>
<!-- 外部样式 style.css -->
<link rel="stylesheet" type="text/css" href="style.css"/>
<!-- 设置:h3{color:blue;} -->
</head>
<body>
<h3>测试!</h3>
</body>

选择器的优先权
 
对上图的解释如下
1.内联样式表的权值最高 1000;
2.ID 选择器的权值为 100;
3.Class 类选择器的权值为 10;
4.HTML 标签选择器的权值为 1;

 

代码如下:


<html>
<head>
<style type="text/css">
#redP p {
/* 权值 = 100+1=101 */
color:#F00; /* 红色 */
}
#redP .red em {
/* 权值 = 100+10+1=111 */
color:#00F; /* 蓝色 */
}
#redP p span em {
/* 权值 = 100+1+1+1=103 */
color:#FF0;/*黄色*/
}
</style>
</head>
<body>
<div id="redP">
<p class="red">red
<span><em>em red</em></span>
</p>
<p>red</p>
</div>
</body>
</html>
 
结果:<em> 标签内的数据显示为蓝色。

CSS 优先级法则
•选择器都有一个权值,权值越大越优先;
•当权值相等时,后出现的样式表设置要优于先出现的样式表设置;
•创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式;
•继承的CSS 样式不如后来指定的CSS 样式;
•在同一组属性设置中标有“!important”规则的优先级最大;

 

posted on 2021-04-06 11:44  ranyonsue  阅读(604)  评论(0编辑  收藏  举报

导航