我有一个小例子,两个相邻的 div 带有背景图像。这个 div 是基于磁贴的编辑器中的磁贴。我想将图像放入第一个 div 并更改图像的位置,以便图像与两个 div 重叠(请参阅http://jsfiddle.net/WRZJe/16/)。我已经设置了所有 div 的 z-index 并且我已经设置了图像的 z-index。divs 和 image 的 position 属性都设置为 absolute:
<body id="exploration-body">
<div class="dungeon-container" style="left: 1040px; top: 720px;">
<div class="dungeon-canvas-full-screen" id="dungeon_canvas">
<div style="top: -720px; left: -1040px;
background-position: -82px -162px;" class="show-tile">
<img id="token-1" class="token-img"
src="1.png" alt="token1" style="top: 0px; left: 40px">
</div>
<div style="top: -720px; left: -960px; background-position: -82px -162px;" class="show-tile">
</div>
</div>
</div>
</body>
这是相关的css代码:
.dungeon-container {
position: absolute;
}
.show-tile {
background-image: url("stone_dungeon.png");
height: 80px;
width: 80px;
position: absolute;
z-index: 5;
}
.token-img {
position: absolute;
z-index: 50;
}
由于图像的 z-index 高于两个 div,因此我希望将图像绘制在两个 div 的前面。但是页面的行为就像没有给定的 z-indexes。图像隐藏在第二个 div 后面,并且会在包含 div 的图像之前的每个 div 前面。
什么可能导致浏览器(我测试过 Safari 和 FF)忽略给定的 z-index?
更新:我添加了来自实际应用程序(http://robitzki.de/zindex.png)的屏幕截图,显示图像移动到那些 div 后面,这些 div 放置在包含 div 之后。