БЛОГ

Как прижать footer к низу страницы

Прижатие footer к низу страницы

Одним из основных правил вёрстки является прижатие footer к низу html-страницы, вне зависимости от размера основного контента. Существует множество способов это сделать. В данной теме мы рассмотрим несколько популярных способов как прижать footer к низу страницы:

Сначала создадим структуру 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 значение фиксированной высоты. Данное свойство уже стало поддерживаться большинством браузеров, поэтому можно использовать для кроссбраузерной вёрстки.

html,
body {
    height: 100%;
}
.container {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}
.content {
	flex: 1;
}
footer {

}
html,
body {
    height: 100%;
}
.container {
    position: relative;
    min-height: 100%;
}
.content {
    padding-bottom: 100px; /*отступ должен равняться высоте footer*/
}
footer {
    position: absolute;
    width: 100%;
    height: 100px; /*обязательно нужно задать фиксированное значение высоты*/
}

Применяя данный способ, вам придётся задать footer фиксированное значение высоты, иначе он закроет часть контента, что может быть неудобным для адаптивной вёрстки.

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 {

}

С уважением, Павлова Наталья

Александр
Очень познавательная статья.
Благодарю автора. Я встречал еще и другие способы прижатия футера к низу экрана. Думаю, стоило бы их описать здесь тоже.
Ответить | Ответить с цитатой
03.11.2018 11:07

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


ОБРАТНЫЙ ЗВОНОК
Заполните форму и наш менеджер Вам перезвонит