だから、IEは楽しいです。IE7 およびそれ以前のバージョンでは、z-index の処理が新しいブラウザーとは少し異なります (参照)。
IE7 では、割り当てられた z-index を持つ各要素は、新しいスタッキング コンテキストを作成します。これは、その中にネストされている要素 z-index が、親要素に対して積み重ねられていることを意味します。簡単な例:
<div id="container-one" style="z-index: 1;">
<p id="para-one" style="z-index: 99999;">Paragraph One</p>
</div>
<div id="container-two" style="z-index: 2;">
<p id="para-two" style="z-index: 1;">Paragraph Two</p>
</div>
この例で#para-two
は、上記になります#para-one
。「しかし#para-one
、巨大な z-index を持っています。それはすべての上になければなりません」 . #container-one
の z インデックスは よりも低くなり#container-two
ます。これらは、個別のスタック コンテキストになりました。
#para-one
の z-index は、内の #container-one
すべてのものにのみ関連しています。また、楽しみのためにopacity
、新しいスタッキング コンテキストも作成します!!
わかりました、あなたのコードについては、あなたがフィドルを作成していないため、完全なhtmlが何であるかについて少し推測する必要がありました!!! . 何を変更する必要があるかについてのアイデアを提供するためだけに、IE7 で動作するようにしました。
フィドル
兄弟要素.zoomImg
よりも高い z-index を持つように設定しました。代わりにa.div
を削除opacity
して追加したことに注意してください。z-index
これは、より高い を強制的に割り当てることですz-index
。opacity
元に戻すことはできますが、IE7 で新しいスタック コンテキストが作成されることを忘れないでください。つまり、要素に を指定するopacity
と、それとz-index
その子は現在のコンテキストから分離されます。IE7 へようこそ。楽しい時間をお過ごしください。
編集: IE7 では、不透明度に別のプロパティが必要です --
filter: alpha(opacity=50);
-ソース