У меня есть три DIV, примерно так:
<div id = "header">
...
</div>
<div id = "content">
<div id = "popup">
...
</div>
</div>
Заголовок DIV # имеет значение «position: fixed» и используется как заголовок без прокрутки в верхней части экрана. DIV # content содержит некоторое содержимое и имеет значение «position: relative». DIV # popup - "position: absolute", начинается скрытым и отображается при наведении курсора.
Я хочу, чтобы всплывающее окно было на самом высоком уровне на странице, чтобы оно было выше даже заголовка DIV #, если они перекрываются. Это нормально работает в Firefox, но в IE всплывающие окна находятся за заголовком. Я могу исправить это, установив z-индекс содержимого DIV # выше, чем заголовок, но тогда, конечно, содержимое DIV # также будет отображаться над заголовком DIV #, когда они перекрываются, чего я не хочу.
Похоже, на меня может повлиять то, что описано на эта страница. Однако, насколько я понимаю, сделать что-то вроде установки z-индекса по умолчанию для всех элементов, например:
* {
z-index: 1
}
должен исправить это (так как теперь для каждого элемента будет явно задан z-index, равный 1), однако вместо исправления этого в IE он ломает его в Firefox (так что Firefox теперь ведет себя как IE).
Что на самом деле происходит с z-индексами в IE?






В IE есть ошибка, которая, я думаю, исправляется в IE8, где стек z-индекса сбрасывается для каждого относительного контекста позиции, существующего на странице. Значение z-index в разных относительно расположенных контейнерах не зависит.
Описанная вами ошибка, вероятно, связана. Попытайтесь заменить положение относительным, поместив всплывающее окно на позицию щелчка мыши.
Другая ссылка: http://therealcrisp.xs4all.nl/ie7beta/css_zindex.html
Если всплывающее окно DIV # должно всегда появляться поверх всех других элементов, почему бы просто не продвинуть его на верхний уровень в DOM?
<div id = "header">
...
</div>
<div id = "content">
...
</div>
<div id = "popup">
...
</div>
Ну, я стремился к семантической согласованности внутри тегов, но я сломался и попробовал это, просто чтобы посмотреть, будет ли это работать, и столкнулся с другой проблемой, когда IE, казалось, не соблюдал z-index в заголовке DIV #, пока он было «положение: исправлено».