背景画像を持つ2つの隣接するdivを持つ小さな例があります。この div は、タイル ベースのエディターのタイルです。画像を最初の div に配置し、画像の位置を変更して、画像が両方の div に重なるようにしたい ( http://jsfiddle.net/WRZJe/16/を参照)。すべての div の z-index を設定し、画像の z-index を設定しました。div と画像の両方の位置属性は絶対に設定されています。
<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-index がないように動作します。画像は 2 番目の div の後ろに隠れ、div を含む画像の前にあるすべての div の前になります。
ブラウザ (私は Safari と FF をテストしました) が指定された z-index を無視する原因は何ですか?
更新: 実際のアプリケーション ( http://robitzki.de/zindex.png ) のスクリーンショットを追加しました。これは、含まれている div の後に配置された div の背後に画像が移動することを示しています。