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

标签 css

<分区>

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

最佳答案

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

如果 #b 紧跟在 #a 之后:http://jsfiddle.net/u7tYE/

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

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

那是使用 adjacent sibling combinator (+).

如果#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>

那是使用 general sibling combinator (~)。

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

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

备选方案:您可以使用纯 CSS 将第二个元素放在第一个元素之前来执行此操作。第一个 div 在标记中位于第一个,但位于第二个的右侧或下方。它会像 previous sibling 姐妹一样工作。

关于css - 在 CSS 悬停事件中,我可以更改另一个 div 的样式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910049/

相关文章:

css 不适用于 html 组件

html - 避免在本地存在 webfont 下载

css - 强制转换元素以影响文档流

html - 我的 `<li>`大小在不同的页面不一样

html - 如何从 css 或 bootstrap 实现这条水平线

javascript - 网站上的谷歌广告溢出到米色背景

html - 水平滚动时将 <div> 对齐到最右边的列

html - CSS 在所有内容之上显示跨度

css - 将 selenium CSS 选择器用于多项操作

css - 为什么更改链接的颜色不起作用?