Получить доступ

Чем отличаются значения position — static, relative, absolute, fixed, sticky?

JuniorВёрстка и CSS
Ещё спрашивают так:
  • Относительно чего позиционируется absolute?
  • Почему z-index не работает?
Коротко

static — обычный поток. relative — остаётся в потоке, сдвигается относительно своего места и становится опорой для absolute-детей. absolute — выпадает из потока, позиционируется относительно ближайшего позиционированного предка. fixed — относительно окна. sticky — ведёт себя как relative, пока при прокрутке не достигнет порога, затем прилипает.

  • z-index работает только у позиционированных элементов и внутри своего контекста наложения
  • transform, opacity < 1, filter создают новый контекст наложения
  • sticky не работает, если у предка overflow: hidden

А ещё У fixed опорой становится предок с transform — частая неожиданность

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Опора absolute — ближайший предок с position, отличным от static (или с transform). Нет такого — начальный блок страницы. Отсюда приём: родителю position: relative, ребёнку position: absolute; top: 0; right: 0.

Контекст наложения. z-index сравнивается только между элементами одного контекста. Элемент с z-index: 9999 внутри родителя с z-index: 1 не перекроет соседа родителя с z-index: 2. Контекст создают: позиционирование с z-index, opacity < 1, transform, filter, isolation: isolate.

sticky требует указать порог (top: 0) и прилипает в пределах родителя; прокручиваемый предок с overflow меняет «окно», к которому он липнет.

Что хотят услышать

  • Поведение каждого значения.
  • Опора для absolute.
  • Контекст наложения и z-index.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем