抱歉,我无法发布完整的代码,我正在研究专有的东西。基本上,我遇到一个问题,即 z 索引为 6 的 DIV 被 z 索引为 5 的覆盖 DIV 阻塞。是否有任何情况会导致这种情况发生?我正在绞尽脑汁试图找出为什么会发生这种情况。这根本没有任何意义。与嵌套 DIV 或 CSS 有关的任何内容position
maybe?
对于我的含糊之处,我深表歉意。我尝试在 JSFiddle 中重新创建,但不幸的是它按预期工作。只有实际的代码是不稳定的。
结构:
<div id="window">
<div id="wall">
<div class="box" /><div class="box" /> .... many boxes
</div>
</div>
<div id="overlay" />
CSS:
#window {
position: relative;
width: 960px;
height: 700px;
overflow: hidden;
background: #666;
}
#wall {
position: relative;
width: 1640px;
height: 1600px;
-webkit-perspective: 2000;
}
#overlay {
position: absolute;
z-index: 5;
background: #000;
}
.box {
left: 0px;
top: 0px;
position: absolute;
width: 228px;
height: 228px;
color: #fff;
font-family: Helvetica, Arial, sans-serif;
font-weight: bold;
font-size: 0.8em;
-webkit-transform-style: preserve-3d;
z-index: 4;
cursor: pointer;
}
覆盖尺寸是通过 jQuery 在特定事件上设置的:
$('<div id="overlay"></div>').css({
'left': $('#window').position().left + 'px',
'top': $('#window').position().top + 'px',
'width': $('#window').width() + 'px',
'height': $('#window').height() + 'px',
'opacity': 0.8
}).appendTo('body');
即使其中一个框的 z 索引为 6,并且覆盖层为 5,覆盖层仍然位于该框上方。
覆盖层应该覆盖窗口,但让其中一个盒子穿过。
为什么这个 JSFiddle 可以工作,但我的实际代码却不能?!http://jsfiddle.net/csaltyj/2gzTc/ http://jsfiddle.net/csaltyj/2gzTc/