Ответ
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.