Как сделать div всегда на весь экран: CSS и JavaScript

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

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

Для обеспечения того, чтобы блок <div> растягивался на всё доступное ему пространство экрана, следует применить единицы вьюпорта в CSS. Ширину нужно задавать как 100vw, а высоту представить как 100vh:

CSS
Скопировать код
.fullscreen-div {
  position: absolute;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
}

Присвойте данный класс элементу <div> в вашем HTML-коде:

HTML
Скопировать код
<div class="fullscreen-div"></div>

Теперь <div> будет охватывать все пространство экрана, подобно конопляному полотну, покрывающему грузовой корабль.

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

Подготовка основы

Итак, сначала проведём сброс стандартных отступов браузера для тегов <html> и <body>. Для этого установите параметры margin и padding равными 0.

CSS
Скопировать код
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}

Управление большим содержимым

Если ситуация такова, что внутри <div> размещено слишком много контента и он "начинает вываливаться", применяется параметр overflow: auto;, дабы оказать возможность добавления скроллбара в случае необходимости.

CSS
Скопировать код
.fullscreen-div {
  overflow: auto;
}

Старый добрый Internet Explorer

Для старых браузеров, которые не поддерживают единицы вьюпорта, целесообразно использовать min-height: 100% для обертки <div>, что гарантирует его полноэкранное отображение.

CSS
Скопировать код
#wrapper {
  min-height: 100%;
}

Стилизация и прозрачность

Добавьте примечательный цвет фона и некоторую прозрачность для визуального выделения полноэкранного <div>.

CSS
Скопировать код
.fullscreen-div {
  background-color: rgba(0, 0, 0, 0.5);
}

Морской волк

Если существует необходимость, чтобы <div> был на одном месте и при прокрутке страницы всегда оставался на экране, используйте position: fixed;.

CSS
Скопировать код
.fullscreen-div {
  position: fixed;
}

Эффективность

Избегайте лишних сложностей и не нужного кода в CSS и JavaScript — наша цель стремится к эффективности и оптимальности кода.

Отзывчивость к устройствам

Элемент должен корректно отображаться на любых устройствах, будь то мобильный телефон или компьютер.

Медиа-запросы

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

CSS
Скопировать код
@media (max-width: 600px) {
  .fullscreen-div {
    /* Стили для мобильных устройств */
  }
}

Совместимость единиц

Используйте единицы vh/vw в сочетании с процентами для обеспечения кроссбраузерности.

CSS
Скопировать код
.fullscreen-div {
  width: 100%;  /* Для устаревших браузеров */
  width: 100vw; /* Для современных браузеров */
  height: 100%;
  height: 100vh;
}

Предотвращение сдвига содержимого

Примените box-sizing: border-box;, Это поможет преодолеть возможные проблемы с расчётами размеров элементов.

CSS
Скопировать код
.fullscreen-div {
  box-sizing: border-box;
}

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

Представьте каждый <div> как сеятель, который раскидывает замыслы на всё пространство экрана, как ячмень на подготовленное поле.

Мы преобразуем обычный <div> в полноэкранный:

CSS
Скопировать код
div {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
}

Полноэкранный <div> окажется всеохватывающим и недвижимым, создавая на странице непрерывное визуальное пространство.

Больше советов и хитростей

Полосы прокрутки

Чтобы избавиться от полос прокрутки, установите значение overflow: hidden; для <body>.

CSS
Скопировать код
body {
  overflow: hidden;
}

Господство слоями с z-index

Применяйте z-index, чтобы обеспечить возможность контролировать порядок наложения элементов на странице.

CSS
Скопировать код
.fullscreen-div {
  z-index: 1000;
}

Живое представление

Продемонстрируйте своё решение в действии с использованием JSFiddle или CodePen.

Интерактивность

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

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

  1. Липкий футер | CSS-Tricks – подробное руководство по созданию <div> на полную высоту.
  2. Полное руководство по Flexbox | CSS-Tricks – сценарий выравнивания элементов в полноэкранных компоновках.
  3. Полное руководство по CSS Grid | CSS-Tricks – практика построения макетов с использованием CSS Grid.
  4. Fullscreen API – основы работы с Fullscreen API в JavaScript.
  5. Совершенное фоновое изображение на весь экран | CSS-Tricks – советы по созданию фоновых изображений на весь экран.
  6. Отзывчивые и гибкие шрифты с vh и vw | Smashing Magazine – применение отзывчивости и гибкости шрифтов с использованием единиц vh/vw.