Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Position Sticky в CSS
Да, я активно использую position: sticky в своих проектах. Это очень полезное свойство для создания плавающих элементов, которые остаются видимыми при прокрутке.
Что это такое?
position: sticky — это гибрид между relative и fixed позиционированием. Элемент ведет себя как relative (занимает место в потоке документа), пока контейнер находится в зоне видимости, но становится fixed (закрепляется) когда пользователь прокручивает страницу и контейнер должен выйти из видимости.
Как это работает?
.header {
position: sticky;
top: 0;
background: white;
z-index: 10;
}
Элемент будет прилипать к верхней части экрана, когда пользователь прокручивает страницу вниз.
Обязательные свойства
Для работы sticky нужно обязательно указать хотя бы одно из этих свойств:
- top
- bottom
- left
- right
Без них sticky не сработает.
Практические примеры
- Липкий заголовок (навигация)
header {
position: sticky;
top: 0;
background: white;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
z-index: 100;
}
- Боковая панель при скролле
.sidebar {
position: sticky;
top: 20px;
max-height: calc(100vh - 40px);
overflow-y: auto;
}
- Липкий столбец в таблице
td:first-child {
position: sticky;
left: 0;
background: white;
}
Важное о контексте
Срезу же важно помнить: sticky работает только внутри своего контейнера (parent элемента). Когда контейнер выходит из видимости, элемент скрывается вместе с ним.
<section class="container">
<header class="sticky-header">Заголовок</header>
<div class="content">Контент...</div>
</section>
Заголовок будет прилипать только пока видна секция container.
Частые проблемы
-
Не работает из-за overflow — если родитель имеет overflow: hidden, sticky не сработает. Нужен overflow: visible
-
Z-index не поднимает — убедись, что элемент имеет явно установленный z-index
-
Спрятан за другим элементом — проверь z-index соседних элементов
Когда использовать
- Заголовки и навигация, которые должны быть всегда видны
- Боковые панели с фильтрами
- Таблицы с фиксированными столбцами
- Подсказки и подсказывающие элементы при скролле
- Липкие CTA кнопки
Альтернативы
Для более сложных сценариев можно использовать:
- position: fixed (но закрепляет к viewport, не к контейнеру)
- JavaScript с Intersection Observer API (более гибкий контроль)
Мобильная совместимость
position: sticky поддерживается всеми современными браузерами, включая мобильные. Это очень удобно для мобильных приложений.
В целом, position: sticky — это один из самых полезных инструментов CSS для улучшения UX, когда нужна плавающая навигация или другие элементы, которые должны оставаться доступными при прокрутке.