PassFront
  1. PassFront
  2. База знаний
  3. Позиционирование элементов

Какое значение position выбрать для фиксированного header?

Позиционирование элементов

Для шапки, которая остаётся видимой при прокрутке, обычно выбирают `position: sticky`, а `position: fixed` — когда шапка должна быть поверх контента всегда.

sticky — чаще всего лучше

.header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: white;
}
  • Шапка остаётся в потоке: контент под ней не нужно сдвигать вручную.
  • Прилипает к верху окна при прокрутке.
  • Не работает, если у предка overflow: hidden или auto.

fixed

.header { position: fixed; top: 0; left: 0; right: 0; height: 64px; }
main { padding-top: 64px; }
  • Выпадает из потока — нужно добавить отступ контенту, иначе он уйдёт под шапку.
  • Всегда закреплена относительно окна.

Нюансы для обоих

  • задать фон, иначе контент будет просвечивать;
  • z-index, чтобы шапка была поверх;
  • при якорных ссылках учесть высоту шапки: scroll-padding-top: 64px у html.

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

position: sticky; top: 0 — шапка в потоке и прилипает при прокрутке; fixed — поверх всего, но нужно компенсировать её высоту отступом.

Подробнее: MDN — position: sticky

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