PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Сравни способы позиционирования элемента и объясни, когда выбирать каждый вариант.

Продвинутые темы

Способы позиционирования (`position`): static, relative, absolute, fixed, sticky. Выбор — по тому, относительно чего размещать и должен ли элемент участвовать в потоке.

Виды и когда выбирать

static (по умолчанию)

Обычный поток, смещения не работают.

  • Когда: обычные элементы (дефолт).

relative

В потоке (место сохраняется), можно сместить относительно себя; создаёт контекст для absolute-потомков.

.el { position: relative; top: 10px; }
  • Когда: небольшое смещение, якорь для absolute-детей.

absolute

Вне потока, относительно ближайшего позиционированного предка (или <html>).

.parent { position: relative; }
.child { position: absolute; top: 0; right: 0; }
  • Когда: оверлеи, тултипы, бейджи, точное размещение внутри контейнера.

fixed

Вне потока, относительно viewport — не двигается при скролле.

.header { position: fixed; top: 0; }
  • Когда: липкие хедеры, кнопки «наверх», модалки.

sticky

Гибрид relative/fixed: relative до порога скролла, затем прилипает.

.nav { position: sticky; top: 0; }
  • Когда: липкие заголовки секций/навигация в пределах контейнера.

Как выбирать

  • Обычный элемент → static.
  • Смещение / якорь для absolute → relative.
  • Точное размещение вне потока → absolute.
  • Фиксация относительно окна → fixed.
  • Прилипание при скролле → sticky.

Коротко для собеседования

Позиционирование: static (поток, дефолт), relative (смещение относительно себя, якорь для absolute), absolute (вне потока, относительно позиционированного предка — оверлеи), fixed (вне потока, относительно viewport — липкие хедеры), sticky (relative до порога, потом прилипает). Выбор по точке отсчёта и участию в потоке.

Другие вопросы раздела