小编典典

在 CSS 悬停事件中,我可以更改另一个 div 的样式吗?

all

当我将鼠标悬停在 id 为“a”的 div 或类上时,是否可以更改 id 为“b”的 div 或类的背景颜色?


阅读 145

收藏
2022-03-23

共1个答案

小编典典

是的,您可以这样做,但前提#b#a在 HTML 之后。

如果#b紧随其后:http #a: //jsfiddle.net/u7tYE/

#a:hover + #b {
    background: #ccc
}

<div id="a">Div A</div>
<div id="b">Div B</div>

那是使用相邻的兄弟组合器(
+)。

如果 和 之间还有其他元素#a#b你可以使用这个:http:
//jsfiddle.net/u7tYE/1/

#a:hover ~ #b {
    background: #ccc
}

<div id="a">Div A</div>
<div>random other elements</div>
<div>random other elements</div>
<div>random other elements</div>
<div id="b">Div B</div>

那是使用通用的兄弟组合器(
~)。

两者都+适用~于所有现代浏览器和 IE7+

如果#b是 的后代#a,则可以简单地使用#a:hover #b.

替代方案:您可以使用纯 CSS 将第二个元素放在第一个元素之前。第一个 div 在标记中是第一个,但位于第二个的右侧或下方。它将像以前的兄弟姐妹一样工作。

2022-03-23