Как работает z-index и stacking context

«Как работает z-index и stacking context» — вопрос из категории CSS, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Частая причина — отсутствие position (не static). z-index работает только с position: relative/absolute/fixed/sticky.

Пример:

<div style="position: relative; z-index: 2;">Первый</div>
<div style="position: relative; z-index: 1;">Второй</div>
<!-- Первый div будет выше -->

Другие причины:

  1. Элементы в разных контекстах стека (например, родитель с z-index создаёт новый контекст).
  2. opacity < 1, transform или filter тоже создают новый контекст.
  3. Одинаковые значения z-index (приоритет у элемента, который ниже в DOM).

Проверь position и контексты!