13

此代码适用于我尝试过的所有其他浏览器,除了 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;
}
4

4 回答 4

15

简单的答案是在的悬停状态中添加一个z-index大于该值的值。.thumbnail:hoverspan

.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;
}
于 2009-08-17T20:36:08.813 回答
6

将这些行放在您的页眉中

<!--[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。

工作顺利,我在我所有放置元素重叠的项目中都使用它。

于 2010-05-15T08:02:46.623 回答
2

如果我理解正确,您希望span显示在标记为缩略图的元素上方。您尚未z-indexspan元素指定 。这是一个工作示例:

<!DOCTYPE HTML>
<html>
<头部>
    <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:悬停 #hbox {
            显示:块;
        }

        #hbox {
            边框:1px 纯蓝色;
            显示:无;
            高度:200px;
            左:50px;
            位置:相对;
            顶部:50px;
            宽度:200px;
            z-index:1;
        }
    </style>
</head>
<正文>
    <div id="vbox">
        <p>将鼠标悬停在此框上可显示隐藏的“弹出窗口”。</p>
        <p id="hbox">这个框是一个弹出框。</p>
    </div>
</正文>
</html>
于 2009-08-17T20:46:08.200 回答
1

解决此问题的方法是向缩略图添加一个类,如下所示:

.thumbnail:hover img.thumb {z-index:-50; position:relative;}
于 2010-01-06T15:52:02.367 回答