如何定位除悬停在 div 上之外的同一类的所有 div?

2024-04-15

我有一组 div 都具有相同的类(如果可以使这更容易,它们不必具有相同的类)。理想情况下,我想要的是,当用户将鼠标悬停在这些 div 之一上时,其他 div(每个都有背景图像)全部变成灰色,以将焦点放在当前悬停的 div 上。如果是悬停在上面的 div 发生了变化,我会没事的,但我真的不知道如何解决这个问题。某种兄弟选择器?我更愿意只使用 css,并且如果解决方案不向后兼容,我会很高兴。

到目前为止,这是我的代码。提前致谢!

.box:hover (SELECT ALL OTHER .BOX) {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-o-filter: grayscale(100%);
-ms-filter: grayscale(100%);
filter: grayscale(100%); }

编辑:我意识到我可以给每个框一个不同的类,然后说当框 1 悬停在上方时,框 2,3,4 等变为灰色,并为每个框执行此操作..但这似乎有很多代码简单的。


仅当您的元素相邻(例如导航栏)时,以下解决方案才有效。也许这不是你的情况,但它可以帮助其他人。必须说的是跨浏览器的CSS2。

包裹你的<div>容器内:

<div class="container">
    <div class="target"></div>
    <div class="target"></div>
    <div class="target"></div>
    <div class="target"></div>
    <div class="target"></div>
</div>

并用它来控制:hover

.target {
    background-color: #444;
}
.container {
    float: left;
}
.container:hover .target {
    background: #bbb;
}
.container .target:hover {
    background: #444;
}

它正在工作here http://jsfiddle.net/simbirsk/4DBQk/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何定位除悬停在 div 上之外的同一类的所有 div? 的相关文章