web-dev-qa-db-ja.com

IE8でZインデックスが壊れていますか?

このコードは、IE8を除いて、私が試した他のすべてのブラウザーで機能します。

IE8はz-indexを無視しているように見え、ポップアップはポップアンダーになります。

適切な場所にあり、サムネイルの下にレンダリングするだけです。

誰でも?

ありがとう!

HTML:

<a class="thumbnail" href="#thumb">
    <img src="comic_a3_thumb.jpg" height="300" width="212" border="0"
         style="float:right; margin-top:10px;margin-bottom:10px;"
         alt="description" />
    <span>
        <img src="/images/comic_a3_popup.jpg" />
    </span>
</a>

CSS:

.thumbnail{
    position: relative;
    z-index: 0;
}

.thumbnail:hover{
    background-color: transparent;
    z-index: 50;
}

.thumbnail span{ /*CSS for enlarged image*/
    position: absolute;
    background-color: lightyellow;
    padding: 5px;
    left: 0px;
    border: 1px dashed gray;
    visibility: hidden;
    color: black;
    text-decoration: none;
}

.thumbnail span img{ /*CSS for enlarged image*/
    border-width: 0;
    padding: 2px;
}

.thumbnail:hover span{ /*CSS for enlarged image on hover*/
    visibility: visible;
    top: -140px; /*position where enlarged image should offset horizontally */
    left: -500px;
}
13
Anna

簡単な答えは、spanのホバー状態にz-index値よりも大きい.thumbnail:hover値を追加することです。

.thumbnail:hover span{ /*CSS for enlarged image on hover*/
    visibility: visible;
    top: -140px; /*position where enlarged image should offset horizontally */
    left: -500px;
    z-index: 51;
}
15
Jordan S. Jones

これらの行をページの先頭に配置します

<!--[if IE]>
    <style>
            #your_faulty_div{
            background-color:#000; /*any color it doesn't matter*/
        filter: alpha(opacity=0);
        }
        </style>
<![endif]-->

your_faulty_divは、IE z-indexのバグが原因で誤動作しているdivです。

スムーズに動作します。要素を重ねて配置したすべてのプロジェクトで使用しています。

6
Juan M.

私があなたを正しく理解しているなら、サムネイルとしてマークされた要素の上にspanを表示したいと思います。 span要素にz-indexを指定していません。これが実際の例です:

 <!DOCTYPE HTML> 
 <html> 
 <head> 
 <meta http-equiv = "Content-type" content = "text/html; charset = UTF-8 "/> 
 <title>ポップアップテスト</ title> 
 <style type =" text/css "> 
#vbox {
ボーダー:1px黒一色; 
高さ:200px; 
位置:相対; 
幅:200px; 
 z-index:0; 
 } 
 
 #vbox:hover #hbox {
 display:block; 
} 
 
 #hbox {
境界線:1px黒一色; 
表示:なし; 
高さ:200px; 
左:50px; 
位置:相対; 
上: 50px; 
幅:200px; 
 z-index:1; 
} 
 </ style> 
 </ head> 
 <body> 
 <div id = "vbox"> 
 <p>このボックスにカーソルを合わせると、非表示の「ポップアップ」が表示されます。</ p> 
 <pid = "hbox">このボックスはポップアップです。</ p> 
 </ div> 
 </ body> 
 </ html> 
2
James Sumners

この問題を修正する方法は、次のようにサムネイル画像にクラスを追加することです:

.thumbnail:hover img.thumb {z-index:-50; position:relative;}
1
Chris