0

想象一下这种结构:

<div class="background">
  <div class="object"></div>
</div>
<div class="foreground"></div>

foreground完全覆盖了我background 在我的 CSS 中我想在悬停时更改对象属性(即.object:hover{})有没有办法在 CSS 中做到这一点而不移动我的object内部foreground或使用 js?

更新:我的 css 被问到了。

.background { background:url('background.svg') no-repeat; }
.foreground { background:url('foreground.svg') no-repeat 50% 50%; }
.object {
 position: absolute;
 top:10px;
 left:10px;
 opacity:1;
}

.object:hover 
{
  opacity:0.5;
}
4

2 回答 2

4

答案有点像。您可以使用兄弟选择器 ( +),但您必须恢复 div 的顺序。

示例 CSS:

.background {
    position: absolute;
    width: 600px;
    height: 400px;
    background-color: red;
}

.foreground {
    position: absolute;
    width: 300px;
    height: 200px;
    left: 150px;
    top: 100px;
    background-color: green;
    z-index: 1;
}

.object {
    width: 600px;
    height: 400px;
}

.foreground:hover + .background .object {
    background-color: blue;
}

和 HTML:

<div class="foreground"></div>
<div class="background">
    <div class="object"></div>
</div>

工作样本:http: //jsfiddle.net/pBYwT/1/

于 2013-10-30T13:44:05.090 回答
-2

要显示在顶部的 div:hover 的 z-index 较高。

于 2013-10-30T13:40:33.247 回答