<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

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

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

CSS overflow: hidden, auto, scroll, clip — понятное руководство с примерами

CSS overflow: hidden, auto, scroll, clip — понятное руководство с примерами

Если ваш блок имеет фиксированную ширину или высоту, возникает вопрос: что делать с лишним содержимым? Ответом управляет CSS overflow. Правильно подобранное значение решает десятки задач — от аккуратной обрезки карточек до отключения скролла страницы под модальным окном.

Что такое CSS overflow и когда он срабатывает

Свойство overflow определяет поведение содержимого, выходящего за пределы области прокрутки элемента (scrollport). Обычно оно актуально, когда у блока есть ограничение по размерам (width/height, max-height и т.п.) и содержимое не влезает.

Значения overflow: краткий обзор

  • visible (по умолчанию): содержимое выходит за рамки и остаётся видимым. Скролла нет.
  • hidden: лишнее содержимое обрезается, без полос прокрутки.
  • scroll: всегда показываются полосы прокрутки (даже если всё влезает).
  • auto: полосы прокрутки появляются только при необходимости.
  • clip: обрезка как у hidden, но принципиально без прокрутки и без возможности прокрутить содержимое скриптами по оси (кроме специальных случаев).

Также есть осевые варианты: overflow-x и overflow-y, которые задают поведение отдельно по горизонтали и вертикали.

Базовый пример: сравниваем hidden, auto, scroll и clip

<style>
.box { width: 280px; height: 120px; border: 2px solid #333; margin: 12px 0; }
.box p { margin: 0; padding: 8px; line-height: 1.4; }
#v  { overflow: visible; }
#h  { overflow: hidden; }
#s  { overflow: scroll; }
#a  { overflow: auto; }
#c  { overflow: clip; }
</style>

<div id="v" class="box"><p>visible: содержимое выходит за рамки блока и продолжает отображаться снаружи, без скролла.</p></div>
<div id="h" class="box"><p>hidden: лишний текст будет обрезан. Полос прокрутки нет.</p></div>
<div id="s" class="box"><p>scroll: полосы прокрутки видны всегда, даже если весь текст помещается в блок.</p></div>
<div id="a" class="box"><p>auto: полосы появятся только при переполнении. Это обычно оптимальный выбор.</p></div>
<div id="c" class="box"><p>clip: поведение похоже на hidden, но стандартно не предусматривает прокрутку содержимого.</p></div>

overflow-x и overflow-y: точечный контроль осей

Частая задача — разрешить вертикальную прокрутку, но обрезать горизонтальный скролл (чтобы не появлялась нижняя полоса прокрутки из-за длинных слов или картинок).

<style>
.scroll-y { max-height: 180px; overflow-y: auto; overflow-x: hidden; }
.item { padding: 8px 12px; border-bottom: 1px solid #eee; white-space: nowrap; }
</style>

<div class="scroll-y">
  <div class="item">Строка 1 — длинное-длиннющее слово: СверхкалибровочныйПараллелепипед</div>
  <div class="item">Строка 2</div>
  <div class="item">Строка 3</div>
  <div class="item">Строка 4</div>
  <div class="item">Строка 5</div>
</div>

Здесь вертикальный список прокручивается, а горизонтальное переполнение скрыто.

Многоточие для длинных строк: text-overflow: ellipsis

Чтобы заменить «лишний» конец строки на многоточие, одних text-overflow: ellipsis недостаточно. Нужны три условия: фиксированная или ограниченная ширина, white-space: nowrap и overflow: hidden (или clip).

<style>
.title {
  width: 260px;
  white-space: nowrap;
  overflow: hidden;          /* или clip */
  text-overflow: ellipsis;   /* многоточие */
  border: 1px solid #ddd; padding: 6px 8px;
}
</style>

<div class="title">Очень длинный заголовок карточки товара, который не помещается</div>

Для многоточия в несколько строк используйте сочетание display: -webkit-box и -webkit-line-clamp (поддержка хорошая в современных браузерах):

<style>
.multi-ellipsis {
  width: 260px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;  /* количество строк */
  overflow: hidden;
}
</style>

<div class="multi-ellipsis">
  Текст анонса, который займёт много места, но мы хотим показать только первые три строки,
  а остальное скрыть с аккуратным окончанием.
</div>

Отключение скролла страницы для модалки без «дёрганья» контента

Классическая проблема: при открытии модального окна мы ставим у body { overflow: hidden; }, полоса прокрутки исчезает, и из‑за этого контент «прыгает» вправо. Решение — свойство scrollbar-gutter: stable (можно добавить both-edges для надёжности).

<style>
/***** базовая страница *****/
html { scrollbar-gutter: stable both-edges; }
body.modal-open { overflow: hidden; }

/***** упрощённая модалка *****/
.modal {
  position: fixed; inset: 0; display: grid; place-items: center;
  background: rgba(0,0,0,0.5);
}
.modal__window {
  max-width: 560px; width: 90%; background: #fff; padding: 24px; border-radius: 10px;
  max-height: 80vh; overflow: auto; /* модальное окно может скроллиться внутри */
}
</style>

<!-- при открытии модалки добавляйте на body класс modal-open -->
<div class="modal" hidden>
  <div class="modal__window">Содержимое модального окна</div>
</div>

Так мы избегаем смещения из‑за исчезающего скроллбара и не блокируем прокрутку внутри самой модалки.

overflow как способ изоляции потока и фикса мелких багов в вёрстке

Любое значение overflow, кроме visible, создаёт новый контекст форматирования. Это удобно, когда нужно:

  • Пресечь «выпадение» float-элементов из контейнера без clearfix: достаточно поставить overflow: auto/hidden у родителя.
  • Остановить схлопывание внешних отступов (margin collapsing) между родителем и первым дочерним блоком.
<style>
.parent { border: 2px solid #5a67d8; margin: 16px 0; }
.child  { margin-top: 20px; background: #edf2f7; }
.fix    { overflow: hidden; } /* создаёт новый контекст, margin не «схлопнется» вверх */
</style>

<div class="parent">
  <div class="child">Без фикса: верхний margin «уходит» за пределы родителя</div>
</div>

<div class="parent fix">
  <div class="child">С overflow: margin работает ожидаемо</div>
</div>

Когда выбирать clip вместо hidden

overflow: clip похож на hidden, но спецификация чётко запрещает появление полос прокрутки и прокрутки содержимого. Это полезно для строгой обрезки декоративных эффектов (например, теней), когда нам принципиально не нужна прокрутка и мы хотим избежать неожиданных сценариев со скроллом, в том числе скриптовым.

Частые ошибки и как их избежать

  • Обрезали важный контент hidden/clip. Всегда проверяйте доступность: критичный текст должен быть доступен пользователю и ассистивным технологиям. Для интерактивных областей предпочитайте auto/scroll внутри ограниченного окна.
  • «Лечим» горизонтальную прокрутку у body через overflow-x: hidden. Это скрывает проблему, а не решает. Лучше найти «виновника» (слишком широкий элемент) и исправить его стиль или расчёт ширины.
  • position: sticky не работает. Родитель с overflow, отличным от visible, может помешать sticky. Старайтесь, чтобы липкий элемент находился внутри контейнера без overflow или выносите sticky выше по дереву.
  • Скролллок без компенсации. При модалках используйте scrollbar-gutter: stable, чтобы не было скачка макета при появлении/исчезновении полосы прокрутки.

Мини‑чеклист выбора значения

  • Нужно обрезать без прокрутки — hidden или clip (строгая обрезка)/ellipsis для текста.
  • Нужна прокрутка по требованию — auto (чаще всего лучший выбор).
  • Полосы скролла всегда видимы — scroll (полезно при стабильной вёрстке таблиц/виджетов).
  • Контроль по осям — комбинируйте overflow-x и overflow-y.

Итого

CSS overflow — базовый, но мощный инструмент управления переполнением, прокруткой и изоляцией контента. Освоив hidden, auto, scroll и clip, вы избежите «ползущих» макетов, сделаете модалки без дёрганья и аккуратно обработаете длинные строки. Хотите системно прокачать вёрстку на реальных макетах и закрепить такие приёмы на практике? Загляните в курс: Прокачать вёрстку на реальных проектах — «Вёрстка сайта с нуля 2.0».

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.