CSS и вёрстка

Как растянуть блок на весь экран css

📅 ⏱ 05:59 ⏳ 1 мин 💬 0

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

Коротко: растянуть блок на весь экран в CSS можно через height: 100vh (высота окна), min-height: 100vh (не меньше экрана), width: 100vw (на всю ширину окна) или «full-bleed» — выйти за границы контейнера отрицательными отступами. Для корректной работы нужна высота у html и body.

Кому и зачемПолноэкранная «шапка» с фото, секция на всю высоту, оверлей-меню, фоновая подложка — частые задачи. Но с единицами vh/vw есть подводные камни на мобильных.

Единицы и их смысл

Единица Что означает
100vh высота окна (viewport)
100vw ширина окна
100% от высоты/ширины родителя
100dvh динамическая высота (учитывает панели браузера)

Вкладки: способы растянуть




CSS
.hero {
  min-height: 100vh;
  display: grid;
  place-items: center;
}

min-height: 100vh — блок не меньше экрана, но может вырасти, если контента больше. Это безопаснее, чем height: 100vh, который обрежет содержимое.

CSS
html, body { height: 100%; margin: 0; }
.full { height: 100%; }

100% берёт высоту родителя, поэтому без высоты у html и body не работает. Используйте, когда нужно растянуть блок внутри контейнера.

«Full-bleed» — растянуть секцию шире контейнера, оставаясь в его разметке:

CSS
.bleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

Приём для картинок и фонов на всю ширину. Осторожно: 100vw включает ширину скроллбара и может вызвать горизонтальную прокрутку.

CSS
.overlay {
  position: fixed;
  inset: 0;   /* top/right/bottom/left = 0 */
  background: rgba(0,0,0,.6);
}

Полное перекрытие окна для меню и модальных окон. inset: 0 растягивает элемент по всем сторонам.

Проблема 100vh на мобильныхВ мобильных браузерах адресная строка «съедает» часть высоты, и 100vh даёт полосу прокрутки. Решение — 100dvh (динамическая высота) или min-height: 100svh (малая стабильная высота).

Практика: секция на всю высоту

  1. Секции задайте min-height: 100vh (или 100dvh).
  2. Внутри — flex/grid для центрирования контента.
  3. Уберите отступы у body.
  4. Проверьте на реальном телефоне: нет ли «двойной» прокрутки.
  5. Для фона-картинки добавьте background-size: cover.

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

Симптом Причина Решение
100% не работает нет высоты у родителей задать height: 100% для html/body
Горизонтальная прокрутка 100vw + скроллбар использовать calc(100% + …) или overflow-x: hidden
Полоса прокрутки на телефоне 100vh с панелью браузера 100dvh / 100svh
Контент обрезан height: 100vh фиксированный min-height вместо height

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

Чек-лист




Чем min-height: 100vh лучше height: 100vh?




Как растянуть элемент поверх всего окна?




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

100% считается от высоты родителя. Если у родителя высота «auto», брать нечего — и блок не растянется. Поэтому задают height: 100% для html и body.

Это «динамическая» и «малая» высоты окна, которые учитывают появление и скрытие интерфейса браузера на мобильных. Решают проблему полосы прокрутки от 100vh.

Задайте блоку min-height: 100vh и background: url(...) center / cover no-repeat;.

Не используйте 100vw для блоков внутри контейнера. Если нужно — overflow-x: hidden у родителя, но лучше пересмотреть приём.

Итоги

  • Высота во весь экран — min-height: 100vh (лучше 100dvh).
  • 100% требует высоты у родителей.
  • Full-bleed — 100vw + отрицательные отступы, осторожно с прокруткой.
  • Полное перекрытие окна — position: fixed; inset: 0.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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