dr.Brain

doctor Brain

мир глазами веб-разработчика

CSS: липкий футер

прибиваем футер к нижней части экрана с помощью CSS

dr.Brain

время чтения 1 мин.

Photo by Lomig on Unsplash

Размещение футера в нижней части экрана - весьма распространенная задача. Тем не менее, при реализации она может вызвать затруднения у начинающего разработчика.

Итак, в значительной части веб-проектов нужен футер, который остается в нижней части экрана при малом количестве контента и адаптивно смещается вниз, когда объем контента пересекает нижнюю границу экрана.

До появления CSS3 было трудно реализовать “липкий” футер, не зная его точную высоту. И хотя такой футер и называется “липким” (sticky), проблема не решается с помощью свойства position: sticky, так как такой подход может привести к блокированию контента.

Сегодня Flexbox является наиболее разумным вариантом решения данной задачи. Для родительского контейнера нужно использовать свойство flex-grow или его часто используемый сокращенный синтаксис flex (в приведенном ниже примере таким контейнером является элемент main).

flex-grow определяет сколько свободного пространства должно быть отведено текущему элементу относительно других элементов. Если значение этого свойства равно 0, размеры элемента, вообще, не будут изменяться. Поэтому для решения нашей задачи нужно использовать значение равное или больше 1. В примере приведенном ниже установлено свойство flex: auto, что автоматически устанавливает для flex-grow значение равное 1.

Во избежание нежелательного поведения для тега footer так же установлено свойство flex-shrink: 0. flex-shrink является противоположностью flex-grow, определяя, как элемент будет умещаться в родительском контейнере.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.