css里的:hover为什么不起作用

发布于 2022-09-13 01:25:04 字数 1094 浏览 34 评论 0

最近在学习基础的前端知识,需到了一个问题,请看代码:

<!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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

以歌曲疗慰 2022-09-20 01:25:04

我的理解是,.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选择器优先级的图

戏蝶舞 2022-09-20 01:25:04

经测试是生效的,并没有出现不生效的情况
image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文