Как работает position: sticky

«Как работает position: sticky» — вопрос из категории CSS, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Sticky-позиционирование привязано к ближайшему родительскому блоку с прокруткой (overflow: auto, scroll, hidden) или к области просмотра (viewport), если такого родителя нет. Оно работает как relative внутри родителя, пока не достигнет заданных границ (top, right, bottom, left), после чего фиксируется.

Пример:

.container {
  height: 200px;
  overflow-y: scroll;
}
.sticky-element {
  position: sticky;
  top: 10px;
}

Здесь .sticky-element будет прилипать к верху .container при прокрутке, оставаясь на 10px от верхнего края. Если бы .container не имел прокрутки, элемент прилипал бы к viewport.