初始代码中,把 span{color:pink;}/*设置为粉色*/删掉,“胆小如鼠”四个字是绿色,如果按照楼下亲的说法,继承是最小的权重。那这里span里的胆小如鼠应该是跟着p{color:red;}变成红色才对。 但是把p{color:red}中的P换成*,变成通用选择器 *{color:red} 后,胆小如鼠四个字变成红色。 所以这里的意思是 *通用选择器的权重>span的继承>p的标签权重吗? 求解惑惑惑惑惑惑惑惑惑惑惑惑惑——
严格点说,通配选择器特殊性为0,而继承的特殊性是“无”。0是大于无的。
span{color:pink;}
p{color:red;}
*{color:purple;}
.first{color:green;}
看了一下你上面回复里写的。
首先span是针对胆小如鼠这四个字的。特殊性是1
p是针对所有段落的,一个元素选择器,所以特殊性为1。但对胆小如鼠四个字来说,是继承来的,所以是无
通配上门说了是0
.first是类选择器,特殊性是10。但对胆小如鼠四个字来说,也是继承来的,所以是无
所以针对胆小如鼠这四个字这里span>*>first>p
而p span是两个元素的元素选择器,它与span一样针对胆小如鼠四个字,特殊性两个相加是2.所以大于span.
span和p在CSS框架里都属于标签,而标签的权重都是1,所以选择的是靠后的span来显示;如果有span{color:某个颜色;},则这里的span就不再当做p的继承来显示了,所以span里的胆小如鼠应该还是是跟着他自己的颜色。但选择器的权重还是死最大的,继承仍然是最小的
你设置三个标签的css样式 span{color:blue;} p{color:red;}*{color:green}然后你看看效果一看你就知道了span是蓝色说明 span权值>p p便签的文字是红说明 p>*所以 span>p>*,简单的来说他还是按照就近原则。
*相当于强制把HTML里面的标签的color全变成red了,所以权重最大