Как прижать футер к низу страницы css
Перейти к содержимому

Как прижать футер к низу страницы css

  • автор:

Как прижать footer к низу окна браузера с помощью CSS.

Задача прижать footer к низу окна браузера – это одна из самых часто встречаемых задач при верстке сайта.

В общем, ситуация следующая: на странице есть 3 области header, content и footer (верхняя часть страницы, содержимое и нижняя часть).

Бывают страницы, в которых содержимое занимает совсем немного места и, в итоге, они начинают выглядеть примерно вот так:

04-01-2014 9-04-25

Нижняя часть сайта (footer) прижимается к контенту и внизу страницы остается пустое пространство.

Как избежать этой ситуации? Как прижать footer к низу окна браузера?

В этой заметке хочу поделиться своим опытом в решении этого вопроса.

Все мои уроки по CSS (каскадным таблицам стилей) здесь.

Итак, имеем следующий HTML-код:

  Заголовок страницы  
Содержимое header

Заголовок.

Пример текста документа

Место copyright.

Теперь посмотрите на код CSS, который позволит решить проблему и прижать footer к низу окна браузера.

* < margin:0; >body height: 100%; min-width:900px; > html < position:relative; min-height:100%; >#container < padding-bottom: 100px;/*Примерно 2 размера footer, чтобы он не наезжал на контент при узком окне браузера*/ >#footer

В общем, теперь страница выглядит вот так:

04-01-2014 9-42-33

Эффект достигается за счет задания элементу html минимальной высоты min-height 100% и относительного позиционирования position:relative.

Для элемента body обязательно нужно задать высоту 100%.

Теперь, когда блок footer будет абсолютно позионироваться относительно низа страницы

position: absolute; bottom: 0;

он встанет как раз в то место, где заканчивается 100% высоты элемента body.

Все мои уроки по CSS (каскадным таблицам стилей) здесь.

Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:

Как привязать футер к низу страницы css

Существует несколько способов, позволяющих решить данную проблему. Рассмотрим некоторые из них.

Исходный HTML файл:

    class="wrapper">  class="content">i am content  class="footer">I am footer    

Пример №1. Footer документа прижимается к низу с помощью фиксированного позиционирования.

.footer  position: fixed; left: 0; bottom: 0; /* Добавим цвет и ширину блока для наглядности*/ background-color: #444; width: 100%; > 

Пример №2. C помощью Flex. Обратите внимание что классу обертке необходимо будет задать высоту.

.wrapper  display: flex; flex-direction: column; justify-content: space-between; height: 100vh; > 

Пример №3. С помощью Grid. У обертки так же задается высота.

.wrapper  height: 100vh; display: grid; grid-template-rows: 1fr auto ; > 

2 способа прижать футер к нижней части страницы (подходит для IE10 & Edge)

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

Способ первый — не очень правильный, но часто используемый.

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

CSS для абсолютного позиционирования футера внизу:

.body < position: relative; min-height: 100vh; box-sizing: border-box; >.footer

Скрипт для вычисления высоты футера и добавления такого же отступа внизу родительского контейнера:

(function addPaddingForFooter() < var $footerHeight = $('.footer').outerHeight(); $('.body').css(< 'padding-bottom': $footerHeight >); >)();

Пример реализации с абсолютным позиционированием футера:

Способ второй — правильный, с использованием flex.

Для родительского блока задаем display: flex; направление размещения блоков — column , и здесь есть 2 варианта:

а) для блока .content , который идет перед .footer задаем flex-shrink: 0 , для того, чтобы этот блок не сжимался, если высота содержимого страницы будет больше 100vh, а для .footer задаем margin-top: auto;

.body < position: relative; height: 100vh; display: flex; flex-direction: column; >.content < flex-shrink: 0; >.footer

б) для блока .content , который идет перед .footer задаем flex-grow: 1 и flex-shrink: 0 , для того, чтобы этот блок занимал все свободное место и при этом не сжимался., а для футера ничего прописывать не нужно.

.body < position: relative; height: 100vh; display: flex; flex-direction: column; >.content

Пример реализации с использованием flex :

Простой пример, как убрать стрелки в поле input[type=»number»] с помощью CSS: Важное дополнение: по прежнему…

Часто в мобильной версии сайта используется кнопка типа «бургера» для вызова основного меню сайта. На…

Суть задачи в том, чтобы сделать плавное появление и скрытие flex-контейнера. Если использовать просто fadeIn(),…

Суть задачи будет понятна для тех, кто уже столкнулся с этой проблемой. Но попробую объяснить…

Прижать футер к низу окна браузера

Прижать футер к низу окна браузера

cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS.

Как добавить UTM-метки в заявки с сайта

UTM метки – это дополнительные данные, которые добавляются в URL с помощью GET-параметров при клике на баннер в.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *