在网上看的各种帖子,伪类选择器和类选择器的权重都是10,但实测却不是这样的
<style type="text/css">
.container div{
width: 100px;
height: 100px;
}
.container:nth-child(1) div{
background: blue;
}
.container div:nth-child(1){
background: red;
}
</style>
<body>
<div class="container">
<div></div>
</div>
</body>
上边的代码,.container:nth-child(1) div
和 .container div:nth-child(1)
的权重应该是一样的,我的判断依据是,交换这两个样式的顺序,div的颜色会变。但是,上边一个 伪类选择器+标签,权重应该为11,另一个是 类选择器+伪类选择器,权重应该为20。请问到底是怎样的?
另一组测试如下:
<style type="text/css">
div{
width: 100px;
height: 100px;
}
div:nth-child(1){
background: blue;
}
.demo{
background: red;
}
</style>
<body>
<div class="demo"></div>
</body>
在这里,变动div:nth-child(1)
和.demo
的顺序,div一直都是蓝色,是否说明伪类选择器权重大于类选择器?
被这两组测试搞晕了,望大神解释,测试浏览器是chrome 69
:hover :link 之类的才是伪类选择器,类选择器和伪类选择器权重一样。
a:hover 这是一个复合选择器,权重叠加后比类选择器大。