p>span{color:blue;}/*子选择器权值该怎么算我就不懂了,权值应该也是2,试了下和p span{color:purple;}前后位置 遵循了就近原则*/
这个权值的详细算法 给讲一讲吧。。估计编写的时候用到的地方很少 好奇记个笔记 没准什么时候用到。这个应该是标签的子选择器吧 术语可能表达的很差,还有类的子选择器的权值算法还有别的 也给讲讲
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100,内联样式选择符的权值最高为1000。例如下面的代码:
p{color:red;} /权值为1/
p span{color:green;} /权值为1+1=2/
.warning{color:white;} /权值为10/
p span.warning{color:purple;} /权值为1+1+10=12/
所以答案是:2
下面是权值的规则:
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:
p{color:red;} /*权值为1*/p span{color:green;} /*权值为1+1=2*(相当于是标签选泽里面套了几个后代选择器就加几,是一层一层的套,不是包含几个加及)/.warning{color:white;} /*权值为10*/p (这个是类选择器固定的是10)span.warning{color:purple;} /*权值为1+1+10=12*(这个是后代选择器套了两个)/#footer .note p{color:yellow;} /*权值为100+10+1=111*/(这个是id选择器里面套个类选择器又套了一个子代选择器)
注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。