如何"link"两个相同导航栏的悬停效果



我想在一个网站上创建两个相同的导航栏。我想做的是"链接"每个导航栏上的:hover效果,这样当NavBar1上的一个链接悬停时,不仅:hover效果会显示在NavBar1,而且相同的:hover效果应该同时显示在NavBar2上的相应链接上。

通过在CSS中使用相邻的兄弟组合子,我已经设法使其单向工作,但我的问题是,我似乎无法使其反向工作。换句话说,当鼠标悬停在NavBar1中的Link1上时,:hover效果将显示在NavBar2中的Link2和NavBar1上。但是,将鼠标悬停在NavBar2中的Link1上时,:hover效果仅显示在NavBar2中的Link1(因为相邻的同级组合子只影响其后面的元素,而不影响前面的元素)。

有可能实现我在这里想要做的事情吗?

如果我没有解释清楚,请理解我的意思:http://jsfiddle.net/9AbvE/697/

这不是我想要的。我需要每个导航栏都在单独的div中,但我还不能通过这样做来实现效果。我把这些代码放在一起只是为了让读者了解我要实现的目标。

请注意,在第一个链接列表中选择Link1与在第二个列表中选择链接1之间的区别。我希望在来回移动时有相同的效果,而不仅仅是单向的(即选择底部的"Link1"应该会像选择顶部一样将"Link1)变成黑色)。

您可以通过使用公共父元素"链接"两者来伪造它:http://jsfiddle.net/jjordanca/TNeZU/

HTML:

<div id="navbar">
    <div id="linkone">
        <a class="one" href="#">Link1</a>
        <a class="one" href="#">Link1</a>
    </div>
    <div id="linktwo">
        <a class="two" href="#">Link2</a>
        <a class="two" href="#">Link2</a>
    </div>
    <div id="linkthree">
        <a class="three" href="#">Link3</a>
        <a class="three" href="#">Link3</a>
    </div>
</div>

CSS:

a {
    text-decoration: none;
    color: red;
    margin-right: 20px;
    padding: 0 10px;
}
#navbar {
    border: 1px solid red;
    width: 500px;
    margin: 50px;
    padding: 20px;
    height: 100px;
    position: relative;
}
#navbar div {
    text-align: center;
    width: 100px;
}
/* LINK 1 */
#linkone {
    position: absolute;
}
.one + .one {
    position: absolute;
    top: 80px;
    left: 0;
}
#linkone:hover {
    color: #000;
    background-color: #008800;
}
.one {
    position: absolute;
    left: 0;
    color: inherit;
    background-color: inherit;
}
/* LINK 2 */
#linktwo {
    position: absolute;
    left: 80px;
}
.two + .two {
    position: absolute;
    top: 80px;
    left: 0;
}
#linktwo:hover {
    color: #000;
    background-color: #008800;
}
.two {
    position: absolute;
    left: 0;
    color: inherit;
    background-color: inherit;
}
/* LINK 3 */
#linkthree {
    position: absolute;
    left: 140px;
}
.three + .three {
    position: absolute;
    top: 80px;
    left: 0;
}
#linkthree:hover {
    color: #000;
    background-color: #008800;
}
.three {
    position: absolute;
    left: 0;
    color: inherit;
    background-color: inherit;   
}

最新更新