Sticky — гібрид relative та fixed
Sticky — це гібрид relative та fixed. Елемент поводиться як relative, доки не досягне певної позиції при прокрутці, після чого стає fixed.
Основна ідея: елемент «прилипає» до заданої межі (top, bottom, left, right) під час прокрутки контейнера.
Класичний випадок — закріплення шапки сайту при прокрутці. Шапка завжди залишається видимою зверху.
Прокрутіть цей контейнер вниз...
Шапка залишиться приклеєною зверху.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Кінець контейнера.
.sticky-header {
position: sticky;
top: 0;
background: #2c3e50;
color: #fff;
padding: 10px 15px;
z-index: 10;
}
Меню, яке «прилипає» на відстані 10px від верху при прокрутці.
Прокрутіть вниз...
Меню буде липнути на top: 10px.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
.sticky-menu {
position: sticky;
top: 10px;
background: #fff;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
padding: 10px;
z-index: 10;
}
Картка, яка прилипає до верху з відстанню 20px — зручно для реклами або важливої інформації в бічній панелі.
Прокрутіть вниз...
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
.sticky-card {
position: sticky;
top: 20px;
background: #fff;
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
padding: 15px;
border-radius: 12px;
border-left: 5px solid #3498db;
}
Маленький бейдж або мітка, яка залишається видимою при прокрутці.
Прокрутіть вниз...
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Libero, ad.
.sticky-badge {
position: sticky;
top: 50px;
background: #e74c3c;
color: #fff;
padding: 5px 12px;
border-radius: 20px;
display: inline-block;
}
Sticky не працює, якщо батьківський елемент має overflow: hidden, scroll або auto. Також потрібна підтримка браузера (не працює в IE).
Крім того, обов'язково потрібно задати одне з значень top, bottom, left або right, інакше sticky не буде працювати.
<!-- Sticky Header -->
<div class="demo-scroll-container">
<div class="sticky-header">📌 Шапка</div>
<!-- контент -->
</div>
<!-- Sticky Menu -->
<div class="demo-scroll-container">
<div class="sticky-menu">
<a href="#">Головна</a>
<a href="#">Про нас</a>
</div>
</div>
<!-- Sticky Card -->
<div class="demo-scroll-container">
<div class="sticky-card">
<strong>🔥 Акція!</strong>
</div>
</div>
<!-- Sticky Badge -->
<div class="demo-scroll-container">
<div class="sticky-badge">🔔 Нове</div>
</div>