为什么 hover 对 p 元素不起作用?

为什么 hover 对 p 元素不起作用?

hover 对 p 无效的原因

在提供的代码片段中,div:hover 的优先级确实高于 p,但 hover 却未能对 p 生效。出现这种情况的原因是:

继承属性与指定值

color 是一个继承属性,这意味着子元素(p)会继承父元素(div)的 color 值。因此,即使 p 没有明确设置 color 值,它也会从 div 继承 yellow。

当 div:hover 生效时,它会将 color 值设置为 red。然而,由于 p 已经继承了 div 的 yellow 值,因此它不会受到 div:hover 影响。

解决方法

要让 hover 在 p 上生效,需要明确指定 p 的 color 值,以覆盖继承的值。一种方法是使用 p:hover:

p {
    color: yellow;
}

p:hover {
    color: red;
}

还可以使用以下方法,通过防止 div:hover 覆盖 p 的 color 值来实现同样的效果:

p {
    color: yellow;
}

div:hover,
div:hover p {
    color: red;
}

以上就是为什么 hover 对 p 元素不起作用?的详细内容,更多请关注其它相关文章!