Вступить в клуб →
сложнаявопросHTML, CSS и адаптивная вёрстка

Модалка с огромным z-index оказалась под шапкой сайта

Модальное окно рендерится внутри карточки товара:

.card { transform: translateZ(0); }

.modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.header {
  position: sticky;
  z-index: 10;
}

Окно открывается, но шапка сайта рисуется поверх него, а растяжка по всем сторонам растягивает окно по карточке, а не по экрану. Увеличение z-index до 999999 ничего не меняет.

В чём причина?

  • Браузер отбрасывает значения z-index больше тысячи и приводит их к максимальному допустимому, поэтому дальнейшее увеличение бесполезно.
  • Карточка с преобразованием создала свой контекст наложения и стала опорным блоком для фиксированных потомков — оверлей надо выносить порталом.
  • Фиксированное позиционирование игнорирует z-index и всегда рисуется ниже липких элементов — нужно заменить его на абсолютное.
  • Дело в липкой шапке: липкие элементы всегда рисуются поверх фиксированных, поэтому модалку нужно переводить на липкое позиционирование с большим z-index.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела