【发布时间】:2015-01-15 08:09:49
【问题描述】:
当我注意到这个问题时,我正在使用悬停练习我的 css,当我将鼠标悬停在顶部时,颜色会变为蓝色,中间会变为红色,但是当我将鼠标悬停到中间时,中间会变为红色,但是顶部仍然存在。
我尝试在中间添加一个 !important:hover 但它不起作用。我也删除了 + 号,但我认为它不会起作用,因为它应该在同一个 div 上才能起作用。
为什么当中间 div 悬停时,悬停对顶部 div 不起作用?
HTML
<div class="top">
<p> HELLO WORLD </p>
</div>
<div class="middle">
<p> HELLO PEOPLE </p>
</div>
CSS
.top:hover + .middle {
color:red;
}
.top:hover {
color:blue;
}
.middle:hover {
color:red;
}
.middle:hover + .top {
color: blue;
}
小提琴HERE
【问题讨论】:
-
不幸的是,您不能在 CSS 中执行此操作。您将需要 javascript。
-
对 CSS 中的
+运算符有任何想法吗?? -
+ 不起作用。你必须使用javascript 4。
-
.middle:hover + .top表示.top元素之后 .middle,而不是之前。 -
+选择紧跟在匹配第一部分的元素之后的元素(匹配选择器的第二部分,在+之后)并且是兄弟元素(不是子元素)。请参阅此处的specification。 Sample Fiddle.middle:hover + .top可以工作。