Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Как закрепить футер на дне страницы: CSS решения

Быстрый ответ

Для того чтобы фиксировать подвал на странице, рекомендуется использовать CSS Flexbox. Для контейнера .container следует установить свойства display: flex;, flex-direction: column; и min-height: 100vh;. Затем, для .footer примените margin-top: auto;, что позволит подвалу аккуратно расположиться в нижней части страницы.

CSS
Скопировать код
body {
  margin: 0; /* Обнуляем отступы */
}

.container {
  display: flex; /* Создаем гибкую структуру */
  flex-direction: column; /* Располагаем элементы вертикально */
  min-height: 100vh; /* Минимальная высота равна высоте вьюпорта */
}

.footer {
  margin-top: auto; /* Здесь вступает в действие магия Flexbox */
}

Структура HTML:

HTML
Скопировать код
<div class="container">
  <!-- Здесь подразумевается место для содержимого -->
  <footer class="footer">Представитель нижнего уровня</footer>
</div>

Таким образом, подвал сохранит свою позицию внизу страницы, независимо от количества контента и размеров экрана.

Кинга Идем в IT: пошаговый план для смены профессии

Создание гибкой и предсказуемой структуры

Использование фиксированного позиционирования для "липких" подвалов

Как быстрая альтернатива, вы можете использовать position: fixed;, и подвал надежно закрепится в нижней части экрана.

CSS
Скопировать код
.footer {
  position: fixed; /* Подвал как приклеенный */
  bottom: 0; /* Фиксация снизу */
  left: 0; /* К началу слева */
  right: 0; /* Без отступов справа */
  height: 50px; /* Задаем высоту */
}

Не забудьте задать элементу <body> достаточный отступ, чтобы содержимое страницы не перекрывало подвал.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Использование адаптивного дизайна

Flexbox способствует упорядоченности, когда размеры экранов варьируются. Примените свойство flex-grow для класса .content, чтобы подвал оставался на своем месте даже при небольшом количестве содержимого.

CSS
Скопировать код
.content {
  flex: 1 0 auto; /* Позволяем контенту растягиваться */
}

Подготовка ко всем сценариям

Абсолютное позиционирование требует детального планирования. При задании position: relative; для контейнера можно контролировать движение подвала по оси z-index.

Невидимый союзник, .footer-ghost, имитирует пространство подвала и предотвращает его нежелательное наложение на содержимое:

CSS
Скопировать код
.footer-ghost {
  display: block;
  height: 50px; /* Высота соответствует высоте подвала */
}

Определенный «призрачный» элемент обеспечивает стабильность верстки и не вредит пользовательскому опыту.

Визуализация

Подвал на веб-странице — это как незаменимая записка Пост-Ит, которую всегда нужно держать в поле зрения:

Markdown
Скопировать код
Рабочее пространство (🖥): [Клавиатура (⌨), Монитор (💻), Записка (📝)]

Сценарий 1: Организованный стол (🖥📂)
⌨💻👇 Открытое пространство стола
📝⬛⬛⬛⬛⬛⬛ Край стола (ваш 'пост-ит' крепко прикреплен)

Сценарий 2: Загроможденный стол (🖥🗑)
⌨💻👇...... Бумаги разбросаны везде
⬛⬛⬛⬛⬛📝⬛ Край стола (записка все равно присутствует)

В разработке сайтов мы применяем CSS для фиксации подвала следующим образом:

CSS
Скопировать код
footer {
  position: absolute; /* Фиксируем подвал */
  bottom: 0;  /* Всегда внизу, на виду */
  width: 100%; /* Занимает всю ширину экрана */
}

Проверьте, что содержимое страницы (body) не мешает подвалу оставаться видимым:

CSS
Скопировать код
body {
  min-height: 100vh; /* Страница всегда имеет необходимый размер */
  position: relative; /* Определяет позиционирование элементов внутри */
}

Так, независимо от объема содержимого (нашего рабочего стола), подвал (записка) всегда останется видимым.

Доступность и окончательная отстройка

Обеспечение адаптивности к контенту

Веб-страница — она как живое существо, она постоянно эволюционирует и меняется. Применяя min-height: 100vh; для контейнера и Flexbox, вы повышаете пользовательский комфорт.

Кросс-браузерная совместимость

Все пользователи заслуживают идеального отображения, и Flexbox помогает преодолеть возникающие различия между браузерами. Проверьте поддержку свойств и, при необходимости, добавьте вендорные префиксы.

Тестирование макета

Проведите тестирование макета на различных устройствах и с разными типами контента до его запуска, чтобы исключить неожиданные сюрпризы.

Визуальные примеры

Для демонстрации и наглядного представления вашего решения используйте платформы типа jsFiddle или CodePen .

Полезные материалы

  1. Sticky Footer, Five Ways | CSS-Tricks
  2. position – CSS: Cascading Style Sheets | MDN
  3. A Complete Guide to Flexbox | CSS-Tricks
  4. Understanding Flexbox: Everything you need to know
  5. CodePen: Fixed Footer Examples
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой CSS-метод рекомендуется для фиксации подвала на странице?
1 / 5