CSS - 元素上悬停不适风格到另一个(CSS - Hover on element doesn&

2019-10-21 06:03发布

我有当另一个DIV悬停应用样式到一个div的问题。 这里是我的情况:

<div id="nav">
    <div class="logged"></div>
    <div class="nav_child"></div>
</div>
.logged:hover .nav_child {
    display: initial;
}
#nav .nav_child {
    display: none;
}

但是,这是行不通的。 我也试过.logged:hover > .nav_child.logged:hover + .nav_child ,仍然一无所获。 它仅适用于#nav:hover .nav_child但我需要表现出来时.logged悬停,而不是在#nav盘旋。

有任何想法吗?

Answer 1:

刚刚与相邻的兄弟组合子解决。 我声明并称之为“记录”为ID,并添加.logged之间+:hover和.nav_child它的工作原理。

参考:相邻的兄弟组合子: http://css-tricks.com/child-and-sibling-selectors

旧代码: http://jsfiddle.net/8rdh7m2j/

工作代码:

<div id="nav">
<div class="logged" id="logged">Hello</div>
<div class="nav_child">Puff</div>
</div>
#logged:hover + .nav_child {
display: initial;
}

#nav .nav_child {
display: none;
}

演示: http://jsfiddle.net/hwh3o8u0/1/



Answer 2:

即使只是删除从孩子和#nav +

.logged:hover+.nav_child {
    display:initial;
}
 .nav_child {
    display: none;
}

http://jsfiddle.net/dz22m10y/



Answer 3:

你是正确的轨道上.logged:hover + .nav_child方法。 它不工作的原因是, #nav .nav_child具有更高的特异性(因为它包括一个ID),所以优先前述统治。

是的,你可以解决移动到一个ID为logged ,只要在你的自我的答案一样,但不是这样做,你可以通过在你已经到了那里太ID添加提高徘徊规则的特殊性:

#nav .logged:hover + nav_child {

顺便说一句,这样的问题几乎总是可以使用浏览器的开发板的样式检查追查。 在这种情况下,你会看到两个规则,你会看到第二个是压倒一切的首位。 这很容易导致你的结论是,这是一个专一的问题。 最具风格督察会给你“模仿”悬置状态的能力。

有关特异性的更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity 。 在你的情况,你原来的第一条规则有20(两班)的特异性,而第二个101(一个ID和一个类)。



Answer 4:

Here is a good resource that covers this topic http://jsfiddle.net/ThinkingStiff/a3y52/
<div id="nav">
    <div id="one" class="logged"></div>
    <div id="two" class="nav_child"></div>
</div>
#one:hover ~ two,
{
    background-color: black;
    color: white;
}


文章来源: CSS - Hover on element doesn't apply style to another one
标签: html css hover