Как я могу получить желаемое поведение z-index из IE при использовании вложенных DIV?

У меня есть три 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?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
1 078
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В 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 #, пока он было «положение: исправлено».

John 12.12.2008 06:13

Другие вопросы по теме