Какое значение 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