← Назад к вопросам

Пользовался ли position sticky

1.0 Junior🔥 181 комментариев
#HTML и CSS

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI20 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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 не сработает.

Практические примеры

  1. Липкий заголовок (навигация)
header {
  position: sticky;
  top: 0;
  background: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 100;
}
  1. Боковая панель при скролле
.sidebar {
  position: sticky;
  top: 20px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
}
  1. Липкий столбец в таблице
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.

Частые проблемы

  1. Не работает из-за overflow — если родитель имеет overflow: hidden, sticky не сработает. Нужен overflow: visible

  2. Z-index не поднимает — убедись, что элемент имеет явно установленный z-index

  3. Спрятан за другим элементом — проверь z-index соседних элементов

Когда использовать

  • Заголовки и навигация, которые должны быть всегда видны
  • Боковые панели с фильтрами
  • Таблицы с фиксированными столбцами
  • Подсказки и подсказывающие элементы при скролле
  • Липкие CTA кнопки

Альтернативы

Для более сложных сценариев можно использовать:

  • position: fixed (но закрепляет к viewport, не к контейнеру)
  • JavaScript с Intersection Observer API (более гибкий контроль)

Мобильная совместимость

position: sticky поддерживается всеми современными браузерами, включая мобильные. Это очень удобно для мобильных приложений.

В целом, position: sticky — это один из самых полезных инструментов CSS для улучшения UX, когда нужна плавающая навигация или другие элементы, которые должны оставаться доступными при прокрутке.