intermediate
Stacking context
Отлаживайте z-index, positioned-элементы, opacity, transforms, isolation и почему дочерние элементы не выходят из context.
Stacking context — локальная «вселенная» по оси z. Потомки упорядочиваются внутри неё; они не могут нарисоваться выше siblings вне родительского context, каким бы большим ни был z-index.
Частые создатели context: positioned элемент с z-index не auto, opacity меньше 1, transform, filter, isolation: isolate, will-change для отдельных свойств, contain с paint и др.
.modal-root {
isolation: isolate; /* осознанный корень overlay */
z-index: 100;
}
.sidebar {
transform: translateZ(0); /* создаёт context — tooltips могут застрять здесь */
z-index: 1;
}
На интервью: отлаживайте z-index через границы context, а не через увеличение чисел.
Типовые ошибки: z-index: 9999 по всему приложению; transform на родителе для анимации ловит dropdown и modal.
Компромисс: быстрые layering-хаки против спланированных overlay roots — корни с isolation масштабируются лучше.
Чеклист:
- Найдите, что создаёт каждый stacking context.
- Сравнивайте siblings только в одном context.
- Планируйте корни overlay и tooltip.
- Избегайте инфляции z-index.