css - 在 :hover trigger another element on same hierarchy depth 上

标签 css

在某些情况下,我无法更改 DOM 元素的层次结构。我面临的情况是我有一个按钮,基于 3 个跨度(按钮左、按钮内容、按钮右)。

<span class="button-left"></span>
<span class="button-content">My button</span>
<span class="button-right"></span>

.button-content:hover 被激活时,我还想激活 .button-left:hover.button-right:hover。这可以纯粹通过 CSS 来完成吗?我知道这可以使用 jQuery 来完成,但在这种情况下我正在寻找仅 CSS 的解决方案。

最佳答案

如果所有元素都在你的悬停元素之后,通过像这样的纯 css 就可以做到这一点

.button-content:hover, .button-content:hover + .button-right{background: red;}

demo

但是我们不能用css选择上一个元素。

如果你可以用一个 div 包裹所有的 span,这可能很容易

div:hover > span{background: red;}

demo

关于css - 在 :hover trigger another element on same hierarchy depth 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18248412/

相关文章:

html - Safari 和 CSS 列的问题

jquery - 移除类后 CSS 动画出现

jquery - 当输入自动聚焦负载时 div 移动

javascript - 我应该采用哪种圆 Angular 方法?

javascript - 显示隐藏 <div> 并同时滚动的按钮

html - 尽管图案不同,但图像大小相等

css - 从 Chrome 上的表单输入中删除灰色边框

CSS 翻转动画因浏览器而异

css - Safari 位置 : sticky (-webkit-sticky) bug 的解决方法

javascript - 如何将 css 加载到我的 react 元素中