【发布时间】:2013-07-29 05:40:10
【问题描述】:
所以我有 2 个div,他们在彼此中,就像这样
<div class="parent">
<div class="child"></div>
</div>
当我将鼠标悬停在 .parent 上时,我想将 background 从 .parent 更改。
但是当我将鼠标悬停在.child 上时,我希望background 再次恢复正常。
例如:(或http://jsfiddle.net/k3Zdt/1/)
.parent {
transition:background-color 1s;
width:100px;
height:100px;
background:#3D6AA2;
padding:50px;
}
.parent:hover {
background:#FFF;
}
.child {
height:100px;
width:100px;
background:#355E95;
transition:background-color 1s;
}
.child:hover {
background:#000;
}
<div class="parent">
<div class="child">
</div>
</div>
当我将鼠标悬停在深蓝色区域上时,我希望不太深蓝色的区域保持不太深蓝色而不是变为白色。
我想保留这个<div> 结构。而且我不想要 JavaScript 解决方案(我知道 JavaScript 解决方案,但我想保持纯 CSS)。
【问题讨论】:
-
将 div 并排放置并使用定位将它们视为父子元素。
-
不要相信你可以使用 CSS 并保持相同的 HTML 结构...悬停在子级上总是会触发父级的悬停。您将不得不使用不同的结构或以另一种方式伪造它。对于这个例子,这不是问题,但我认为对于更复杂的设置来说这是一个问题。
-
"我想保留这个
<div>结构" 我不想用 CSS 做奇怪的定位。待定。 -
@robooneus 我认为它也不会,但也许还有一些我不知道的东西。
-
这里是Fiddle。