将鼠标悬停在其中一个链接上时,CSS 会更改两个链接

标签 css css-selectors

我有以下 html:

<div id="main">
    <div id="home" class="section">
        <ul>
            <li class="home_li"><a href="#home" class="goto_home">Home</a></li>
            <li class="about_li"><a href="#about" class="goto_about">About us</a></li>
            <li class="contact_li"><a href="#contact" class="goto_contact">Contact</a></li>
        </ul>
    </div>  <!-- End home -->

    <div id="nav">
        <ul>
            <li class="home_li"><a href="#home" class="goto_home"></a></li>
            <li class="about_li"><a href="#about" class="goto_about"></a></li>
            <li class="contact_li"><a href="#contact" class="goto_contact">Contact</a></li>
        </ul>
    </div>  <!-- End nav -->
</div>  <!-- End main -->

我想做的是在悬停一个链接时更改两个链接的状态。例如,如果我将鼠标悬停在 <div id="home"> 下的“关于”上我想要两个链接,一个和 <div id="nav"> 下的那个, 以不透明度显示。

如果可能的话,我尽量远离 JS。到目前为止,我对 CSS 的尝试一直是使用相邻的选择器,但这对我来说是新的,所以我无法让它发挥作用。

    #home .about_li a:hover + #nav .about_li a {
        opacity: .5;
    }

这可以只用 CSS 来完成吗?

编辑:

感谢您的回复。我需要如何更改相邻选择器的 HTML 才能工作?如果它不会严重影响站点的其余部分(结构现在已经基本完成),我可以尝试并进行一些调整。

另一个编辑:

好的,我已经阅读了更多关于这些选择器的内容,现在我明白了。我曾认为,通过全部位于主 div 中,它们是 sibling :P 现在我明白了为什么它不起作用。我会看看我是否可以想出一个仅使用 CSS 的解决方法,并将在此处发回。否则我会选择 JS :(

最佳答案

不幸的是,您的结构对于单独的 CSS 选择器来说太复杂了,因为 a 元素不是彼此的 sibling ,但它是您内部的 div,因此上。

使用 jQuery 等 JavaScript 库非常容易,否则你就不走运了。

关于将鼠标悬停在其中一个链接上时,CSS 会更改两个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6669147/

相关文章:

css - 尝试将子菜单添加到 css

html - 有些选择器不适合我

javascript - 获取被点击的<a>的DOM路径

html - 使用显示 :table 的相等 div 高度

css - IE8 问题 - 在其他浏览器上看起来不错

jQuery:我可以遍历 not() 方法吗

CSS选择一个仅包含特定类的元素

python - 无法使用 selenium webdriver 通过 id 延迟获取元素

css - CSS是否有一个:blur selector (pseudo-class)?

css - 固定宽度的网站是唯一真正的可能性吗?