CSS и вёрстка

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

📅 ⏱ 21:32 ⏳ 1 мин 💬 0

Как прижать футер к низу страницы css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раск

Коротко: прижать футер к низу страницы проще всего через flex-колонку: body или оболочке задать min-height: 100vh и display: flex; flex-direction: column, а футеру — margin-top: auto. Тогда футер «прилипнет» к низу окна, даже если контента мало.

Кому и зачемКлассическая проблема: на коротких страницах футер «висит» посередине экрана. Это выглядит неаккуратно. Решение называют «sticky footer» — прилипающий подвал.

Варианты решения

Способ Плюсы
Flex + margin-top: auto современный и короткий
Grid с 1fr строгая структура страницы
Абсолютное позиционирование для простых лендингов
position: fixed только если подвал нужен постоянно видимым

Вкладки: примеры




CSS
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
}
main { flex: 1; }          /* занимает свободное место */
footer { margin-top: auto; } /* прижимается к низу */

Самый надёжный способ. main растягивается и «толкает» футер вниз.

CSS
body {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
  margin: 0;
}

Три строки: шапка, растягивающийся контент, футер. 1fr в середине забирает всё свободное место.

CSS
html, body { height: 100%; margin: 0; }
.wrapper { position: relative; min-height: 100%; padding-bottom: 80px; }
footer { position: absolute; bottom: 0; left: 0; right: 0; height: 80px; }

Старый, но рабочий способ. Обязательно padding-bottom у обёртки, равный высоте футера — иначе контент заедет под него.

CSS
footer {
  position: fixed;
  left: 0; right: 0; bottom: 0;
}

Футер всегда виден. Подходит только для «липких» панелей действий, иначе он перекрывает контент. Не забудьте отступ контенту снизу.

Не забудьте про margin у bodyБраузер добавляет body { margin: 8px }. Без сброса появляется полоса прокрутки и «лишний» отступ — классическая причина, почему min-height: 100vh даёт скролл.

Практика: «липкий» футер в WordPress

  1. Сбросьте отступы у html и body.
  2. Обёртке сайта задайте flex-колонку и min-height: 100vh.
  3. Основной контент — flex: 1.
  4. Футеру — margin-top: auto (или строки grid).
  5. Проверьте на короткой и длинной странице.
  6. Проверьте на мобильном: адресная строка может менять высоту (100dvh).

Частые ошибки: причина → решение

Симптом Причина Решение
Футер посередине контент не растянут flex: 1 у main
Появилась прокрутка margin у body сбросить отступы
Футер перекрывает текст fixed без отступа добавить padding снизу
На мобильном «прыгает» 100vh и панели браузера 100dvh

Проверьте себя

Чек-лист




Какое свойство «толкает» футер вниз во flex-колонке?




Что нужно у обёртки при способе с absolute?




Вопросы и ответы

Потому что контента мало и он не занимает всю высоту экрана. Нужно растянуть основной блок: flex: 1 или строка 1fr в grid.

Да, нужно найти обёртку темы (обычно .site или #page) и задать ей flex-колонку и min-height. Правки — в дочерней теме.

При fixed он перекроет контент — задайте контенту нижний отступ. При flex-подходе высота футера не мешает.

При flex-подходе достаточно min-height: 100vh у обёртки. height: 100% нужен только для «процентного» способа.

Итоги

  • Лучший способ — flex-колонка + min-height: 100vh + margin-top: auto.
  • Альтернатива — grid с строкой 1fr.
  • Сбрасывайте margin у body.
  • На мобильных учитывайте панели браузера (100dvh).
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

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

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость