css里的:hover为什么不起作用
最近在学习基础的前端知识,需到了一个问题,请看代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>测试</title>
<style>
a {
text-decoration: none;
}
a:hover {
color: coral;
}
.nav2 a {
color: #b0b0b0;
}
</style>
</head>
<body>
<div class="nav">
<div class="nav1">
<div class="nav2">
<a href="#">你好</a>
</div>
</div>
</div>
</body>
</html>
这段代码的a:hover
没有生效
如果把a:hover
放到.nav2 a
的后面,那么这个a:hover
又生效了。
我理解这是选择器的优先级的问题,但是这里有个疑惑,选择器优先级不应该是出现层叠问题后(比如有两个或以上的选择器选择了这个a:hover
)才会计算优先级吗?我这里就一个选择器,为什么也会有这个问题?还是我理解有误?
我到底应该怎么理解这个问题?
谢谢大家。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我的理解是,
.nav a
选择器权重是0-0-1-1
未选中
a
时,a:hover
选择器权重是0-0-0-1
。选中
a
时,a:hover
选择器权重同样是0-0-1-1
,但是此时.nav a
选择器是在后面定义的,覆盖了a:hover
选择器,所以a:hover
选择器还是不生效。这也是你把
a:hover
选择器放在.nav a
选择器后,a:hover
选择器生效的原因。一个CSS选择器优先级的图
经测试是生效的,并没有出现不生效的情况