Автор: Stasyuk Eugene 1504 Метки: 25.06.2022

Position sticky не работает — к моему удивлению это довольно частый запрос, с которым я сам в свое время столкнулся. Sticky — это довольно простое и универсальное решение для размещения липких блоков на странице. Как минимум, оно не требует от тебя приличного количества javascript кода, который и работал местами коряво. Сейчас же данную процедуру можно сделать всего лишь с помощью использования нескольких css директив.

И да, для непосвященных — вот как работает position sticky: https://codepen.io/jecosjmecos/pen/oNOMBxz

Почему position sticky не работает?

I feel sticky

Начнем с рассмотрения возможной проблемы, а потом поговорим о том, как использовать sticky. В свое время я столкнулся с этой проблемой. Возможно, дело в том, что у одного из родителей элемента стоит свойство overflow: hidden, auto, scroll. В примере выше наш липкий блок имеет родителя с классом .container, который имеет родителя <section>. Так вот, если одному из этих родителей прописать свойство overflow , голубой блок перестанет перемещаться внутри. Проверяйте 😁

Как работает?

position sticky

В примере выше мы можем видеть два блока: красный блок слева и прозрачный блок справа (.blue-wrapper). Внутри правого блока есть синий блок. Высота этого небольшого блока меньше высоты его родителя. Поэтому, с помощью героя нашей статьи, мы можем заставить синий блок двигаться в пределах его родителя, когда пользователь будет скролить страницу. Пожалуй, это весь принцип его использования.

Всё что нам необходимо сделать — это:

  • Добавить голубому блоку (элементу с классом .blue) свойство position: sticky
  • Определиться с тем, куда блок будет прилипать — к верху или к низу. В моем примере он наверху, поэтому добавляем свойство top: 15px
  • Проследить, чтобы родители элемента не имели свойств overflow: hidden, auto, scroll

В основном этого более чем достаточно, чтобы все работало как нужно.

Вернуться на главную

Другие статьи

Как импортировать большую базу данных MySQL в OpenServer

Как импортировать большую базу данных MySQL в OpenServer

Как импортировать большую базу данных MySQL в OpenServer

Пожалуй все привыкли импортировать базу данных с помощью phpMyAdmin. Но данная платформа имеет ограничение по весу файла, который можно загрузить. Поэтому если дамп базы превышает данную квоту, через phpMyAdmin сделать это не получиться. Сегодня я покажу альтернативный способ загрузки базы данных — через консоль. В OpenServer можно воспользоваться встроенной консолью (но это не обязательно, можно […]

Якорные ссылки и фиксированный header

Якорные ссылки и фиксированный header

Якорные ссылки и фиксированный header

В последнее время я уже давно не встречал сайты, которые не имеют фиксированный header. Такой подход уже стал обычной практикой. Как минимум очень удобно когда навигация по сайту всегда находится под рукой. Но есть один момент, который может доставить дискомфорт при таком подходе — это якорные ссылки. Обычно при клике на такую ссылку, секция с […]