TGViewer
Настя Котова // Frontend & Node.js Настя Котова // Frontend & Node.js @startpoint_dev · 1.41K subscribers
Post #43 225
🔍 Продолжаем разговор про z-index: Контекст наложения

Контекст наложения (stacking context) — это концепция в CSS, которая определяет, как элементы должны перекрываться или как они наложены друг на друга на веб-странице. Контекст наложения создается в следующих случаях:

1️⃣ Корневой элемент (HTML): По умолчанию корневой элемент создает контекст наложения.

2️⃣ Свойства position и z-index: Любой элемент с свойством position отличным от static, и заданным значением z-index задаёт новый контекст наложения.

3️⃣ Некоторые CSS-свойства также создают новый контекст наложения:

🔸 opacity со значением меньше 1.
🔸 transform, не равное none.
🔸 filter, не равное none.
🔸 perspective, большее нуля.
🔸 clip-path, не равное none.
🔸 mask / mask-image / mask-border, не равные none.
🔸 mix-blend-mode, кроме normal.
🔸 will-change, упоминающее любое из свойств, создающих контекст наложения.
🔸 isolation: isolate.

Внутри контекста элементы сортируются сначала по порядку расположения в HTML, а элементы с указанным z-index перемещаются в соответствии с их значениями z-index. Элемент с более высоким z-index находится над элементом с более низким z-index.

Особенностью контекста наложения является его изоляция: z-index работает только в пределах одного контекста наложения и не взаимодействует с элементами, которые находятся за его пределами в других контекстах. Это означает, что z-index одного блока не может влиять на элементы, находящиеся в другом блоке, если каждый из них создает собственный контекст наложения.


<style>
#content-1 { color: red; height: 18px }
#new-context { margin-top: -12px }
#content-2 { color: blue; height: 18px }
#content-3 { color: green; margin-top: -12px }
</style>

<div id="main" style="position: relative; z-index: 1;">
<div id="content-1" style="position: relative; z-index: 10;">#content-1</div>
<div id="new-context" style="opacity: 0.7;">
<div id="content-2" style="position: relative; z-index: 200;">#content-2</div>
<div id="content-3" style="position: relative; z-index: 100;">#content-3</div>
</div>
</div>


🔹 Здесь элемент #new-context задаёт новый контекст наложения внутри контекста #main.
🔹 Поэтому, несмотря на то, что z-index у элементов #content-2 и #content-3 выше, чем у #content-1, они визуально будут расположены ниже, так как #content-1 поднимается выше всего #new-context благодаря своему z-index.
🔹 При этом #content-2 будет перекрывать #content-3 внутри общего контекста наложения #new-context.

🔗 Подробнее про контекст наложения на MDN.
  • 👍 2
More from @startpoint_dev
  1. Sep 21, 2026Я к вам с новым анонсом. Этот год я заканчиваю выступлением на HolyJS! Конференция пройдёт…
  2. Sep 14, 2026В прошлый раз разбирали, зачем нужны using и await using и где они работают. Теперь посмот…
  3. Sep 7, 2026В JavaScript регулярно появляются новые возможности, и не про все из них мы вообще узнаём.…
  4. Aug 31, 2026В цикле про рендеринг мы разбирали конвейер: стили, лейаут, отрисовка, композитинг. Всё эт…
  5. Aug 24, 2026Весной мы обсуждали работу с сырыми данными: ArrayBuffer, Buffer в Node.js, SharedArrayBuf…
  6. Aug 17, 2026Когда я готовила материал для цикла про Next.js, то неожиданно для себя узнала, что в нём…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →