← Все вопросы

Как прижать футер к низу страницы, если контента мало?

Задан 20 месяцев назад721 просмотров3 ответа
14

Когда на странице много текста — футер внизу как надо. Но если контента мало, футер «подскакивает» к середине, а под ним пустота. Как сделать, чтобы он всегда был внизу, но не fixed?

3 ответа

19
✓ Принятый ответ — помог автору

Классический «sticky footer» через флекс на body. Делаешь страницу колонкой на всю высоту экрана, а основной контент заставляешь занять всё свободное место:

body {
  min-height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
}
main {
  flex: 1; /* съедает всё свободное место, отталкивая футер вниз */
}

Теперь футер всегда внизу: если контента мало — main растянется и подопрёт его, если много — страница просто проскроллится. Никакого position: fixed, футер не липнет поверх контента.

Denis Fadin 100dvh вместо 100vh на мобилках, чтобы не прыгало из-за адресной строки · 20 месяцев назад
7

Можно и через grid: body { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; } — шапка, контент, футер.

4

Через флекс: main { flex: 1 }.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект