为何 div:hover 样式不能使 p 元素变色?

为何 div:hover 样式不能使 p 元素变色?

div:hover 样式为何对 p 元素无效?

在给出的 html css 代码中,

mmm

悬停时不会变色,而

sss

会变为红色。这是因为:

css 继承

color 是一个继承属性,意味着子元素会继承父元素的 color 值。在这种情况下,p 元素从父元素 div 继承了 yellow 颜色。

hover 优先级

虽然 div:hover 的优先级高于 p,但它只能覆盖 div 本身的样式,而不能覆盖子元素 p。

解决方法

要让 p 在悬停 div 时变色,有两种方法:

  1. 针对 p 元素应用 hover 样式:
p:hover {
    color: red;
}
  1. 使用 css 选择器排除非悬停状态的 p 元素:
div:not(:hover) p {
    color: yellow;
}

div:hover {
    color: red;
}

通过使用这些方法,你可以确保 p 元素在悬停 div 时变为红色,而保持其默认 yellow 颜色。

以上就是为何 div:hover 样式不能使 p 元素变色?的详细内容,更多请关注其它相关文章!