目录

7.1、CSS 特殊性

2017年08月20日 08:39 | 2443次浏览 作者原创 版权保护

有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码:

p{color:red;}
.first{color:green;}
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?green是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

下面是权值的规则:

标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:

p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/

注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。


练习

新建示例页面demo.html,示例代码如下:

我来试一试:为“胆小如鼠”这几个文本设置颜色为紫色

要求:为“胆小如鼠”这几个文本设置权值更高的CSS样式代码来覆盖以前的CSS样式代码

在第11行输入下面的代码:

p span{color:purple;}

p>span{color:purple;}

示例代码

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CSS特殊性</title>
<style type="text/css">
p{color:red;}
.first{color:green;}/*因为权值高显示为绿色*/

span{color:pink;}/*设置为粉色*/


</style>
</head>
<body>
    <h1>勇气</h1>
    <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>
    <p id="second">到了三年级下学期时,我们班上了一节公开课,老师提出了一个很简单的问题,班里很多同学都举手了,甚至成绩比我差很多的,也举手了,还说着:"我来,我来。"我环顾了四周,就我没有举手。</p>
</body>
</html>

解释

胆小如鼠因为继承应该是绿色,就是把span{color:pink;}删除后的结果;这时候胆小如鼠的权值就不是.first的10,而是继承的0.1。然后添加上span{color:pink;},因为span的权值为1,比继承的0.1大,所以显示为粉色。

可以理解为.first定义了一个房间,它里面重新定义的后代相当于独立出去了,出去的时候只带着0.1的权值,如果碰到重新定义,就应该是别的颜色。



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/1328.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程


上一篇:Docker安全 下一篇:7.2、CSS 层叠规则
^