Как прижать footer к низу страницы
Одним из основных правил вёрстки является прижатие footer к низу html-страницы, вне зависимости от размера основного контента. Существует множество способов это сделать. В данной теме мы рассмотрим несколько популярных способов как прижать footer к низу страницы:
- при помощи свойства display: flex;
- с помощью позиционирования;
- с помощью единиц измерения vh;
- при помощи создания дополнительного блока.
Сначала создадим структуру html-документа. Все содержимое тега body нужно обернуть в общий div (в данном примере <div class = “container”></div>). А весь основной контент обернуть в отдельный div, не включая footer (в данном примере <div class = “content”></div>).
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="/"> <title>Document</title> </head> <body> <div class="container"> <div class="content"> </div> <footer></footer> </div> </body> </html>
Как прижать footer к низу страницы при помощи свойства display: flex
Этот способ я использую чаще всего. Он достаточно быстрый, простой и не требует задавать footer значение фиксированной высоты. Данное свойство уже стало поддерживаться большинством браузеров, поэтому можно использовать для кроссбраузерной вёрстки.
html, body { height: 100%; } .container { min-height: 100%; display: flex; flex-direction: column; } .content { flex: 1; } footer { }
Как прижать footer к низу страницы с помощью позиционирования
html, body { height: 100%; } .container { position: relative; min-height: 100%; } .content { padding-bottom: 100px; /*отступ должен равняться высоте footer*/ } footer { position: absolute; width: 100%; height: 100px; /*обязательно нужно задать фиксированное значение высоты*/ }
Применяя данный способ, вам придётся задать footer фиксированное значение высоты, иначе он закроет часть контента, что может быть неудобным для адаптивной вёрстки.
Прижатие футера к низу страницы используя единицы измерения vh
1vh = 1% от высоты окна. При уменьшении высоты окна, уменьшается ширина, высота, шрифт элемента. Данные единицы поддерживаются только современными браузерами.
Перед применением лучше проверить в сервисе: https://caniuse.com/#search=calc.
.content { min-height: calc(100vh - 100px); /*100vh - это высота окна браузера, 100px - высота footer*/ } footer { height: 100px; }
Прижатие футера к низу экрана путём создания дополнительного блока
Этот способ предполагает создание дополнительной html-конструкции. Потребуется новый контейнер div. Обратите внимание, что блоку с селектором класса content задается отрицательный margin по размеру высоты дополнительного блока.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="/"> <title>Document</title> </head> <body> <div class="container"> <div class="content"> <div class="delimiter"></div> </div> <footer></footer> </div> </body> </html>
CSS-код в данном случае будет иместь следующий вид:
html, body { height: 100%; } .container { min-height: 100%; } .content { margin-bottom: -50px; /*отступ равен высоте дополнительного блока*/ } .delimiter { height: 50px; } footer { }
С уважением, Павлова Наталья