Как перекрыть один элемент другим. CSS-свойство z-index
- 16 июля 2025
Свойство z-index в CSS отвечает за порядок наложения элементов на веб-странице. Оно определяет, какой элемент окажется сверху, а какой — будет скрыт под ним. Чем выше значение z-index, тем ближе к пользователю расположен элемент.
Когда z-index работает
🚀 Сегодня вам бесплатно доступен тренажёр по HTML и CSS.
Важно помнить: z-index влияет только на элементы, у которых установлено свойство position со значением relative, absolute, fixed или sticky.
Если элемент по умолчанию статичен (position: static), z-index на него не повлияет.
Пример:
<div style="position: relative; z-index: 1; background: red; width: 100px; height: 100px;">Красный блок</div>
<div style="position: relative; z-index: 2; background: blue; width: 100px; height: 100px; margin-top: -50px;">Синий блок</div>
В этом примере синий блок частично перекрывает красный — у него больше z-index.
Как работает стек наложения
Каждый позиционированный элемент образует локальный контекст наложения. Это значит, что внутри него z-index потомков работает относительно этого контекста, а не всей страницы.
То есть:
.parent {
position: relative;
z-index: 10;
}
.child {
position: relative;
z-index: 999;
}
Если рядом есть другой .parent с z-index: 20, то никакие z-index внутри первого .parent не смогут «выпрыгнуть» наружу. Это часто становится источником забавных странностей в интерфейсе.
Значения z-index
auto— элемент следует естественному порядку наложения.- Число (
z-index: 10) — устанавливает приоритет слоя. - Отрицательные значения (
z-index: -1) — элемент уходит за другие.
Важно: z-index можно задавать и отрицательный, чтобы «отправить» элемент куда-то за фон, но нужно следить за доступностью и взаимодействием.
Пример с модалкой
.modal {
position: fixed;
z-index: 1000;
background: white;
}
.overlay {
position: fixed;
z-index: 999;
background: rgba(0, 0, 0, 0.5);
}
Сначала отображается затемнение (overlay), а поверх него — модальное окно (modal).
Советы
- Создавайте плоскую структуру слоёв, не злоупотребляйте
z-index: 99999. - Выделите в проекте диапазоны значений
z-index: для модалок, дропдаунов, тултипов и т. д. - Следите за контекстами наложения:
transform,filter,opacity < 1,will-change,position: fixedтоже могут его создавать.
Отладка
Чтобы разобраться, кто кого перекрывает, используйте DevTools в браузере — вкладка Computed → z-index, а также визуальное включение outline или временной заливки фоном.
Заключение
z-index — мощный, но коварный инструмент. Он помогает управлять визуальной иерархией, особенно в сложных интерфейсах: модальные окна, всплывающие меню, уведомления и так далее. Главное — понимать, где начинается и заканчивается контекст наложения, и не путать глобальные и локальные уровни.
Больше обзоров веб-функций — в телеграм-канале HTML Academy.
Нашли ошибку или опечатку? Напишите нам.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.