
Перенос текста на веб-странице напрямую влияет на читаемость и удобство восприятия контента. В CSS для этого предусмотрены свойства word-wrap, overflow-wrap и white-space, каждое из которых решает конкретные задачи. Например, word-wrap: break-word позволяет разрывать длинные слова, предотвращая горизонтальный скролл на узких блоках.
Overflow-wrap задаёт поведение текста при переполнении контейнера. Установка overflow-wrap: anywhere позволяет браузеру переносить слова в любом месте строки, что полезно для динамически изменяемых блоков с переменной шириной.
Свойство white-space контролирует переносы и пробелы: white-space: normal включает автоматический перенос строк, nowrap запрещает разрывы, а pre-wrap сохраняет форматирование текста и добавляет перенос при необходимости. Для текстов в таблицах или сетках CSS-решения требуют дополнительной настройки table-layout или правил для flex и grid контейнеров.
Автоматическое расставление переносов можно включить с помощью hyphens. Свойство hyphens: auto позволяет браузеру вставлять дефисы в словах при переносе, что улучшает визуальное восприятие длинных текстов на разных ширинах экрана.
Использование свойства word-wrap для переноса длинных слов

Свойство word-wrap управляет разрывом длинных слов в пределах блока. Значение break-word позволяет браузеру переносить слово на новую строку, если оно превышает ширину контейнера. Это предотвращает горизонтальный скролл и сохранение макета страницы при работе с динамическим контентом.
Для применения достаточно добавить в CSS правило: word-wrap: break-word; к нужному блоку. Например, div { word-wrap: break-word; } обеспечит перенос слов в текстовых блоках любой ширины, включая адаптивные элементы.
Свойство совместимо с большинством современных браузеров, но для старых версий Internet Explorer используется аналог word-break: break-all;. Это позволяет разрывать слова без сохранения целостности, что подходит для технических данных или длинных ссылок.
Рекомендуется сочетать word-wrap с overflow-wrap, чтобы повысить контроль над переносом текста. Например, word-wrap: break-word; overflow-wrap: anywhere; обеспечит корректное отображение даже при минимальной ширине контейнера.
Применение overflow-wrap для управления разрывом текста

Свойство overflow-wrap контролирует перенос слов в блоках при переполнении. Оно позволяет задавать правила, по которым браузер разрывает текст, предотвращая выход содержимого за границы контейнера.
Основные значения свойства:
- normal – переносы не выполняются, текст может выходить за пределы блока.
- break-word – слова переносятся при необходимости, сохраняя целостность макета.
- anywhere – браузер может разрывать слово в любом месте строки, что полезно для узких или динамических блоков.
Примеры использования в CSS:
- p { overflow-wrap: break-word; } – перенос длинных слов в параграфах.
- div { overflow-wrap: anywhere; } – перенос текста в блоках с ограниченной шириной.
Для повышения совместимости и предсказуемости поведения текста рекомендуется комбинировать overflow-wrap с word-wrap: break-word. Это обеспечит корректный перенос в большинстве браузеров, включая старые версии.
Контроль переноса с помощью white-space

Свойство white-space управляет пробелами и переносами строк внутри блока. Оно определяет, как браузер обрабатывает последовательные пробелы и разрывы текста, влияя на перенос длинных слов и форматирование.
Основные значения свойства и их применение:
- normal – стандартное поведение с автоматическим переносом строк при достижении границы блока.
- nowrap – запрещает перенос строк, текст остаётся в одной линии, вызывая горизонтальный скролл при переполнении.
- pre – сохраняет все пробелы и переносы, как в исходном коде, переносы не добавляются автоматически.
- pre-wrap – сохраняет пробелы и переносы, при этом добавляет автоматический перенос при достижении границ блока.
- pre-line – объединяет последовательные пробелы, сохраняя только переносы строк, автоматически разбивает текст по границам контейнера.
Примеры применения:
- div { white-space: pre-wrap; } – полезно для текстовых блоков с форматированием, которые должны корректно переноситься.
- p { white-space: nowrap; } – предотвращает разрыв строк для заголовков или ссылок.
Сочетание white-space с word-wrap и overflow-wrap позволяет точно контролировать поведение текста в любых блоках, включая адаптивные макеты и таблицы.
Перенос текста в таблицах с помощью table-layout
Свойство table-layout управляет алгоритмом расчёта ширины столбцов в таблицах. Значение fixed фиксирует ширину колонок, что позволяет контролировать перенос текста внутри ячеек.
При использовании table-layout: fixed; текст в ячейках переносится автоматически, если добавить word-wrap: break-word или overflow-wrap: break-word. Это предотвращает расширение таблицы за пределы контейнера.
Пример применения:
table { table-layout: fixed; width: 100%; }
td { word-wrap: break-word; }
Для динамических таблиц с переменной шириной колонок рекомендуется устанавливать минимальную и максимальную ширину ячеек с помощью min-width и max-width. Это обеспечивает предсказуемый перенос текста без деформации макета.
Сочетание table-layout: fixed и свойств переноса текста особенно полезно для таблиц с длинными ссылками, адресами или техническими данными, где важно сохранить компактность и читабельность.
Применение свойств hyphens для автоматического расставления переносов
Свойство hyphens позволяет браузеру автоматически добавлять дефисы при переносе слов. Это улучшает внешний вид текста и предотвращает слишком большие промежутки в строках.
Основные значения свойства:
- none – перенос с дефисами отключен, слова могут переноситься только с использованием word-wrap или overflow-wrap.
- manual – дефисы расставляются только там, где они указаны вручную с помощью символа .
- auto – браузер сам определяет допустимые места для переноса с дефисом, учитывая язык документа.
Пример использования:
p { hyphens: auto; }
Для корректной работы свойства важно указывать язык текста с помощью атрибута lang в HTML. Например, <p lang=»ru»>Текст с длинными словами</p> позволит браузеру правильно расставлять переносы на русском языке.
Сочетание hyphens: auto с word-wrap: break-word и overflow-wrap: anywhere обеспечивает аккуратный перенос даже для длинных слов в узких контейнерах и адаптивных макетах.
Настройка переноса текста в блоках с фиксированной шириной
В блоках с фиксированной шириной важно контролировать поведение текста, чтобы он не выходил за границы контейнера и оставался читаемым. Для этого применяют свойства word-wrap, overflow-wrap и white-space.
Пример настройки блока:
div { width: 250px; word-wrap: break-word; overflow-wrap: break-word; }
Если требуется сохранять форматирование с пробелами и переносами, используют white-space: pre-wrap. Это позволяет переносить строки при достижении границ блока, сохраняя исходные разрывы и пробелы.
Для длинных ссылок и технических данных полезно добавить hyphens: auto, чтобы браузер автоматически расставлял дефисы и равномерно распределял текст по строкам.
Комбинация этих свойств обеспечивает предсказуемый перенос текста и предотвращает горизонтальный скролл даже в узких контейнерах с фиксированной шириной.
Особенности переноса текста в flex и grid контейнерах
В контейнерах с flex или grid текст подчиняется правилам распределения пространства элементов. Для корректного переноса необходимо учитывать ширину элементов, свойства flex-wrap и min/max-width.
Пример для flex-контейнера:
div.flex-container { display: flex; flex-wrap: wrap; }
Элементы внутри контейнера будут переноситься на новую строку при нехватке пространства. Для текста внутри элементов важно использовать word-wrap: break-word и overflow-wrap: anywhere.
Пример для grid-контейнера:
div.grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
Текст внутри ячеек автоматически переносится при достижении границ колонки. Для сохранения аккуратного вида рекомендуется также применять hyphens: auto и white-space: normal.
Сравнительная таблица особенностей переноса:
| Свойство | Flex | Grid |
|---|---|---|
| Автоперенос элементов | flex-wrap: wrap | grid-template-columns с minmax |
| Перенос текста внутри | word-wrap: break-word, overflow-wrap: anywhere | word-wrap: break-word, hyphens: auto |
| Контроль ширины | min-width / max-width | minmax() для колонок |
Использование этих настроек позволяет сохранять читабельность текста и предсказуемое поведение блоков в адаптивных макетах с flex и grid.
Вопрос-ответ:
Что делает свойство word-wrap и как его использовать для переноса текста?
Свойство word-wrap управляет разрывом длинных слов в блоке. Значение break-word позволяет браузеру переносить слово на следующую строку, если оно не помещается в ширину контейнера. Использование: div { word-wrap: break-word; }. Это предотвращает горизонтальный скролл и сохраняет макет страницы.
В чём разница между overflow-wrap и word-wrap?
overflow-wrap контролирует перенос текста при переполнении блока и имеет значения normal, break-word и anywhere. В современных браузерах оно заменяет устаревшее word-wrap, но их можно использовать вместе для совместимости и предсказуемого поведения текста.
Как white-space влияет на перенос текста?
Свойство white-space определяет, как обрабатываются пробелы и разрывы строк. Например, white-space: normal включает автоматический перенос, nowrap запрещает разрывы, pre-wrap сохраняет форматирование с переносами при необходимости. Это полезно для блоков с фиксированной шириной или текстовых блоков с исходным форматированием.
Можно ли сделать автоматический перенос слов с дефисами?
Да, для этого используют свойство hyphens: auto. Браузер сам добавляет дефисы в словах при переносе, если указан язык текста через атрибут lang. Например, <p lang=»ru»>Длинныйтекстдляпроверки</p> позволит корректно расставлять переносы по правилам русского языка.
Как обеспечить корректный перенос текста в flex и grid контейнерах?
В flex-контейнерах используют flex-wrap: wrap, чтобы элементы переносились на новую строку при нехватке места. Для текста внутри элементов применяют word-wrap: break-word и overflow-wrap: anywhere. В grid-контейнерах колонки задают через grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); с аналогичными свойствами переноса для текста внутри ячеек.
