Z-индекс сломан в IE8?
Этот код работает в любом другом браузере, который я пробовал, кроме 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;
}
Ответы
Ответ 1
Простым ответом является добавление значения z-index
, которое больше значения .thumbnail:hover
в состояние зависания span
.
.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;
}
Ответ 2
Поместите эти строки в свою страницу
<!--[if IE]>
<style>
#your_faulty_div{
background-color:#000; /*any color it doesn't matter*/
filter: alpha(opacity=0);
}
</style>
<![endif]-->
your_faulty_div - это div, который плохо себя ведет из-за ошибки IE z-index.
Работает гладко, я использую его во всех своих проектах, где я располагал элементы, перекрывающиеся.
Ответ 3
Если вы правильно поняли, вы хотите, чтобы span
показывал над элементом, отмеченным как миниатюра. Вы не указали z-index
для элемента span
. Вот рабочий пример:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Pop-up Test</title>
<style type="text/css">
#vbox {
border: 1px solid black;
height: 200px;
position: relative;
width: 200px;
z-index: 0;
}
#vbox:hover #hbox {
display: block;
}
#hbox {
border: 1px solid blue;
display: none;
height: 200px;
left: 50px;
position: relative;
top: 50px;
width: 200px;
z-index: 1;
}
</style>
</head>
<body>
<div id="vbox">
<p>Hover over this box to show a hidden "pop-up".</p>
<p id="hbox">This box is a pop-up.</p>
</div>
</body>
</html>
Ответ 4
Способом устранения этой проблемы является добавление класса к уменьшенному изображению:
.thumbnail:hover img.thumb {z-index:-50; position:relative;}