Гид по технологиям

Как переносить длинные слова в CSS

4 min read Вёрстка Обновлено 09 Jan 2026
Перенос длинных слов в CSS
Перенос длинных слов в CSS

Редактор кода с примером CSS

Длинные строки текста и длинные непрерывные слова (например, ссылки или сплошные дефисные цепочки) могут «выпирать» за пределы контейнера и ломать макет страницы. Браузеры по умолчанию не всегда разрывают такие цепочки — им нужно сказать, как себя вести. В этой статье объясняю простые и надёжные способы безопасного переноса длинного текста с помощью CSS.

Как работает перенос текста в CSS

Термин: перенос текста — это способность браузера разбивать длинные слова или строки на несколько строк, чтобы они не выходили за пределы родительского контейнера.

CSS предоставляет встроенные свойства для управления переносом слов: прежде всего word-wrap (устаревающее имя) и overflow-wrap (современное). Они сообщают браузеру, разрешено ли переносить длинные «непробельные» последовательности.

Основная идея: браузер не будет разрывать длинное слово, пока вы явно не укажете, что это допустимо.

Свойства и значения — быстрое объяснение

  • overflow-wrap / word-wrap: break-word — разрешает перенос внутри слова, чтобы избежать переполнения.
  • normal — поведение по умолчанию: переносы только в точках разрыва (пробелы, дефисы); не ломает длинные строки.
  • initial — возвращает значение по умолчанию для элемента; обычно эквивалент normal.
  • inherit — унаследовать значение от родителя.

Важно: word-wrap — устаревшее имя, но поддерживается браузерами. Лучше использовать overflow-wrap в новом коде.

Пример: как перенести длинное слово

На примере у нас был блок с длинным заголовком, который выходил за границы:

Веб-страница с div-контейнером и длинным заголовком h2, выходящим за границы

Ниже — минимальный рабочий пример.

HTML:

This-div-contains-the-long-h2-lorem-text-demonstrated-in-the-image-above

CSS:

.wrap-it {
  overflow-wrap: break-word; /* современное имя */
  word-wrap: break-word;     /* запас для старых браузеров */
}

Результат: браузер разрежет длинную цепочку и перенесёт её на следующую строку, сохраняя ширину контейнера.

Веб-страница, где длинный заголовок h2 перенесён на следующую строку внутри div

Альтернативные и дополняющие методы

Используйте эти приёмы вместе с overflow-wrap для более гибкого контроля:

  • word-break: break-all — принудительно ломает слова в любой точке. Полезно для контейнеров с фиксированной шириной, но может ухудшать читаемость.

  • hyphens: auto — включает автоматический перенос по слогам для языков, где это поддерживается (требует указания lang на элементе, например ).

  • white-space — контролирует поведение пробелов и переносов; для текста с сохранением пробелов это может мешать переносу.

  • max-width и overflow: hidden/auto — ограничивают размер контейнера; вместе с переносом это даёт предсказуемый результат.

Примеры:

.container {
  max-width: 320px;
  overflow-wrap: anywhere; /* альтернативное значение, помогает в некоторых браузерах */
}

.break-all {
  word-break: break-all; /* ломает в любом месте */
}

.hyphens {
  hyphens: auto; /* перенос по слогам при наличии языковой разметки */
}

Когда перенос не сработает (контрпримеры)

  • Контейнер с white-space: nowrap; — запретит перенос вообще.
  • Элементы с display: table или некоторые встроенные блоки могут вести себя иначе и препятствовать переносу.
  • Очень длинные URL с составными схемами и символами без точек-делителей иногда разрываются некорректно — в таких случаях полезно вставлять нулевые пробелы ( или ​) в тексте на стороне сервера/редактора.

Практические рекомендации (ментальные модели)

  • Правило 1: Используйте overflow-wrap: break-word для блоков с пользовательским контентом (комментарии, посты, описания).
  • Правило 2: Для контролируемого дизайна сочетайте max-width и hyphens: auto для читаемости.
  • Правило 3: Применяйте word-break: break-all только когда важна целостность макета выше читабельности.

Чек-лист ролей (разработчик / дизайнер / контент-менеджер)

  • Для разработчика:

    • Применил overflow-wrap: break-word к элементам с пользовательским контентом.
    • Проверил поведение на узких экранах и в старых браузерах.
    • Добавил тесты на длинные строки/URL.
  • Для дизайнера:

    • Убедился, что переносы не ломают визуальный ритм шрифтов.
    • Настроил hyphens и языковую метку страницы.
  • Для контент-менеджера:

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

Критерии приёмки

  • Текст не выходит за границы контейнера на ширинах от 320px до 1920px.
  • Длинные слова корректно переносятся при проверке в основных браузерах (Chrome, Firefox, Safari, Edge).
  • Читаемость не ухудшилась: крупные переносы не ломают смысл фраз.

Шпаргалка (cheat sheet)

  • Для общего решения: overflow-wrap: break-word;
  • Для «всё или ничего»: word-break: break-all; (жёсткий разрыв)
  • Для переносов по слогам: hyphens: auto; + lang attribute
  • Для предотвращения переноса: white-space: nowrap;

Короткий глоссарий

  • overflow-wrap: свойство CSS, позволяющее браузеру переносить длинные «слова» внутри границ контейнера.
  • word-break: свойство, управляющее точками, где можно разрывать строки внутри слова.
  • hyphens: автоматический перенос по слогам, когда он поддерживается.

Небольшой методический шаблон для внедрения

  1. Проанализируйте зоны с пользовательским вводом (комментарии, поля описания, отзывы).
  2. Добавьте overflow-wrap: break-word к соответствующим селекторам.
  3. Протестируйте на узких экранах и с длинными URL/цепочками символов.
  4. При необходимости добавьте word-break или hyphens как исключения.

Заключение

Перенос длинных слов — простая и эффективная мера для предотвращения поломки макета и уменьшения «шумного» DOM. Начинайте с overflow-wrap: break-word, добавляйте дополнительные правила (word-break, hyphens) только там, где это действительно нужно. Регулярно тестируйте на реальном контенте — это самый надёжный способ избежать сюрпризов.

Короткое резюме:

  • Используйте overflow-wrap: break-word для пользовательского контента.
  • hyphens: auto улучшает читаемость в поддерживаемых языках.
  • word-break: break-all — крайняя мера, влияющая на читаемость.

Важно: если вы вставляете вручную нулевые пробелы или специальные символы, проверяйте их совместимость с обработкой на сервере и поисковой оптимизацией.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Градиенты в Canva: добавить и настроить
Дизайн

Градиенты в Canva: добавить и настроить

Ошибка Disabled accounts can't be contacted в Instagram
Социальные сети

Ошибка Disabled accounts can't be contacted в Instagram

Генерация случайных чисел в Google Sheets
Google Таблицы

Генерация случайных чисел в Google Sheets

Прокручиваемые скриншоты в Windows 11
Windows

Прокручиваемые скриншоты в Windows 11

Как установить корпусной вентилятор в ПК
Железо

Как установить корпусной вентилятор в ПК

Check In в iOS 17: настройка и безопасность
How-to

Check In в iOS 17: настройка и безопасность