Как прижать 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 {
}
С уважением, Павлова Наталья


