qq_挖哈哈_0
2018-07-26 10:21
不应该是绿色吗?
.first的权值更高才对呀
.first{}不是应该权值为10吗
p span{}不是2吗
表示没看懂。
在不定义span的css样式时,span会继承p父元素的css样式,开始的时候定义了span的css样式为紫色,所以span胆小如鼠才会显示为紫色,然后用p span{color:purple;}定义span的css样式,在此时他的权值为2,而span{color:pink;}权值为1,所以span标签会显示为紫色。
先比较范围若范围不一样则以小范围优先若范围一样比较权值 权值大优先 权值一样内联式优先
比如p>span这个子选择器的意义是p标签的第一代子标签<span>全为紫色我们先来看范围
这个p>span标签的范围和上面span的作用范围一样所以比较权值明显看出前者大所以为紫色
再看p和.first范围一样比较权值明显.first大所以整体为绿色
又因为span的作用范围小所以颜色不受大范围的标签控制
个人理解 错误请纠正
我的见解是这样的
先比较范围若范围不一样则以小范围优先若范围一样比较权值 权值大优先 权值一样内联式优先
.first{}对象是p标签,span只是继承了p的样式权值应该是0.1吧,p span{}权值是2没错
个人认为绿色只匹配在<p>标签里,在没加“p span{color:purple;}”语句前,<span>只是继承,权值应该是1+0.1=1.2。为粉色;加上后权值为1+1+0.1=2.1。为紫色;
楼上正解
p的权值1,.first的权值为10。但是.first赋值于P,所以p span{}的权值是10+1=11
!important是独立于此规则的最高权限。
初识HTML(5)+CSS(3)-升级版
1225309 学习 · 18230 问题
相似问题