<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>特殊性</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是内联元素,内联元素的权重大于标签和类
对同一个标签里的内容设置css样式时,会比较权值来确定哪一个样式被应用于此内容,比如p和.first,无论这两个放在何处都是类的权值高;但对子元素会使用层叠的方式来覆盖样式,当然如果是span和p span当然会较两个的权值,p span权值要比span高
css虽然有继承性,但也有特殊性,在特殊性那一节中,
p{color:red;}
.first{color:green;}
文本显示的是绿色,同理
.first{color:green;}span{color:pink;} /*span等价于.first span*/
文本显示的是粉色,应该是谁离目标元素最近,就用谁的
span是p和first的子级,子级优先也就是继承的权值最低,所以以span修饰的颜色为优先,span给了粉色,显示就为粉色了
你可以这样理解:span属于.first。所以span是.first span。
关于这个隶属问题,我是认为谁描述的清楚,就听谁的。。。。
那为什么p标签显示red, .first{color:green;}会显示.first内的颜色呢,也应该是标签权重高啊。你能否换种解释能让我听懂呢谢谢
注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。
标签权值为1;所以为粉色
因为span{color:pink;}和.first{color:green;}是同个级别权值 都高于p{color:red;}
一楼正解
楼上正解
标签的权重比类的权重高