
Перенос слов в веб-страницах помогает избежать длинных строк и неровных краёв текста. Без настроек CSS слова могут выходить за пределы контейнера или оставлять большие пробелы, что ухудшает читаемость и внешний вид блока. Для решения этой задачи используются свойства word-wrap, overflow-wrap и hyphens.
Свойство word-wrap позволяет браузеру разбивать слишком длинные слова, если они не помещаются в контейнер. Аналогичное по назначению overflow-wrap работает по тем же принципам, но считается более современным и поддерживается всеми актуальными браузерами. Для переноса слов по слогам применяется hyphens, которое учитывает языковые правила и ставит дефисы в нужных местах.
Чтобы добиться корректного отображения текста на разных языках, важно указать атрибут lang в HTML-разметке и задать соответствующий язык. Это позволит свойству hyphens корректно использовать словари переносов. Дополнительно можно комбинировать несколько свойств CSS, чтобы текст оставался аккуратным и адаптировался к ширине экрана без искажений.
Использование свойства word-wrap для автоматического переноса

Свойство word-wrap позволяет управлять переносом длинных слов и строк внутри текстовых элементов. Оно особенно полезно при работе с контентом переменной длины, например, названиями товаров, ссылками или пользовательским текстом.
Чтобы активировать автоматический перенос, достаточно применить правило word-wrap: break-word;. В этом режиме браузер переносит слово на следующую строку, если оно не помещается в контейнер по ширине. Это предотвращает выход текста за границы блока и сохраняет структуру макета.
Пример применения:
| CSS-код | Описание |
|---|---|
p { word-wrap: normal; } |
Перенос выполняется только в местах, разрешённых по правилам языка. |
p { word-wrap: break-word; } |
Длинные слова переносятся на следующую строку при необходимости. |
Свойство word-wrap поддерживается всеми современными браузерами. Для совместимости с новыми стандартами рекомендуется использовать его эквивалент overflow-wrap, который работает аналогично, но соответствует спецификации CSS3.
Как работает свойство overflow-wrap и чем оно отличается от word-wrap
Свойство overflow-wrap используется для автоматического переноса слишком длинных слов, которые не помещаются в границы контейнера. Оно сообщает браузеру, что при нехватке места слово можно разорвать и перенести часть текста на следующую строку.
По сути, overflow-wrap выполняет ту же задачу, что и устаревшее свойство word-wrap, но является его стандартным аналогом по спецификации CSS3. Современные браузеры интерпретируют оба свойства одинаково, но предпочтительно использовать именно overflow-wrap, поскольку оно гарантирует корректное поведение в будущем.
Основные различия между word-wrap и overflow-wrap:
- word-wrap введено ранее и поддерживается для обратной совместимости.
- overflow-wrap – официальное название свойства в спецификации CSS3.
- Оба параметра принимают одинаковые значения: normal и break-word.
Рекомендуемая запись в коде:
- Сначала указать свойство
overflow-wrapдля современных браузеров. - Добавить
word-wrapкак резервный вариант для старых движков.
Пример:
p {
overflow-wrap: break-word;
word-wrap: break-word;
}
Такое сочетание обеспечивает стабильный перенос текста во всех браузерах без нарушения структуры блока.
Применение свойства hyphens для расстановки переносов по слогам
Свойство hyphens управляет автоматической расстановкой дефисов при переносе слов по слогам. Оно работает совместно с языковыми словарями браузера и требует указания атрибута lang в HTML-разметке, чтобы определить правила переноса для конкретного языка.
Например, для корректной работы с русским текстом в коде документа нужно указать <html lang="ru">, а затем добавить в CSS следующее правило:
p {
hyphens: auto;
}
Значения свойства hyphens:
none– переносы по слогам отключены, слова не разделяются дефисом;manual– перенос выполняется только в местах, где в тексте указан символ­;auto– браузер самостоятельно расставляет переносы с учётом языка.
Использование hyphens: auto; особенно полезно в адаптивных макетах с переменной шириной колонок. Это улучшает читаемость текста и предотвращает появление больших пробелов между словами. Однако корректная работа свойства зависит от наличия словаря переносов в браузере и правильного определения языка страницы.
Подключение языковых правил для корректного переноса слов
Для правильной работы свойства hyphens необходимо указать язык содержимого через атрибут lang. Этот параметр сообщает браузеру, какие словари использовать при расстановке переносов по слогам.
Если атрибут lang не задан, браузер не сможет определить правила переноса, и свойство hyphens: auto; не будет работать. Язык можно указать как для всего документа, так и для отдельных элементов. Например:
<html lang="ru">
<body>
<p>Пример текста с автоматическим переносом.</p>
</body>
</html>
Для многоязычных страниц допустимо использовать разные значения lang внутри одного документа:
<p lang="en">Automatic word hyphenation example.</p>
<p lang="de">Beispiel für automatische Silbentrennung.</p>
Некоторые браузеры требуют наличия встроенных или системных словарей для конкретных языков. В таких случаях корректность переносов зависит от их наличия в системе пользователя. Поэтому рекомендуется тестировать отображение текста на разных языках и устройствах, особенно при использовании hyphens в сочетании с адаптивной вёрсткой.
Настройка переноса текста внутри блоков с фиксированной шириной

При фиксированной ширине контейнера длинные слова могут выходить за его границы и нарушать структуру страницы. Чтобы этого избежать, следует задать свойства, управляющие поведением текста при ограниченном пространстве.
Базовая комбинация для переноса выглядит так:
.block {
width: 300px;
overflow-wrap: break-word;
word-wrap: break-word;
hyphens: auto;
}
Параметр overflow-wrap активирует перенос длинных слов, а hyphens добавляет дефисы при необходимости. Такая настройка обеспечивает равномерное распределение текста и сохраняет форму блока.
При использовании фиксированных размеров контейнера важно учитывать единицы измерения. Если задана ширина в пикселях, то при изменении масштаба страницы текст может выйти за границы. Для адаптивных макетов предпочтительнее использовать проценты или единицы em, чтобы перенос сохранялся пропорционально размеру шрифта.
Дополнительно стоит проверить значение white-space. Оно должно быть установлено в normal, иначе перенос не сработает. Пример:
.block {
white-space: normal;
}
Такая конфигурация позволяет сохранять читаемость текста и визуальную целостность макета даже при узких или фиксированных колонках.
Как избежать обрезания слов при длинных строках текста

Обрезание слов возникает, когда текст превышает ширину контейнера и не переносится на новую строку. Для предотвращения этого используют свойства overflow-wrap, word-wrap и hyphens.
Рекомендуемая конфигурация CSS для длинных строк:
p {
overflow-wrap: break-word;
word-wrap: break-word;
hyphens: auto;
white-space: normal;
}
overflow-wrap: break-word; позволяет перенести длинные слова, если они не помещаются в строку. hyphens: auto; добавляет дефисы при переносе по слогам, что улучшает читаемость. white-space: normal; гарантирует, что перенос будет происходить автоматически и без обрезки текста.
Для элементов с фиксированной шириной можно дополнительно использовать свойства max-width и min-width, чтобы контролировать размеры блока и предотвратить визуальные нарушения макета при адаптивной вёрстке.
Перенос слов в адаптивной вёрстке и на мобильных устройствах

В адаптивной вёрстке текст должен корректно подстраиваться под ширину экрана. На мобильных устройствах длинные слова без переноса могут создавать горизонтальную прокрутку и нарушать визуальную структуру страницы.
Для мобильных экранов рекомендуется использовать сочетание свойств:
- overflow-wrap: break-word; – позволяет перенести слишком длинные слова на следующую строку;
- hyphens: auto; – расставляет дефисы при переносе по слогам, учитывая язык текста;
- white-space: normal; – разрешает автоматический перенос строк;
- max-width: 100%; – гарантирует, что блок не выйдет за пределы контейнера.
Пример настройки для адаптивного блока:
.text-block {
overflow-wrap: break-word;
hyphens: auto;
white-space: normal;
max-width: 100%;
}
Дополнительно важно указывать атрибут lang для корректного переноса по слогам. Такой подход обеспечивает читаемость текста и предотвращает сдвиги макета на любых устройствах, включая смартфоны и планшеты.
Совмещение CSS-свойств для улучшения читаемости текста
Для качественного переноса текста и повышения читаемости рекомендуется комбинировать несколько CSS-свойств. Это позволяет контролировать поведение слов в разных условиях и на разных устройствах.
Оптимальная комбинация включает:
- overflow-wrap: break-word; – перенос длинных слов внутри блока;
- word-wrap: break-word; – поддержка старых браузеров;
- hyphens: auto; – автоматическое расставление дефисов при переносе по слогам;
- white-space: normal; – разрешение обычного переноса строк;
- max-width и min-width – контроль ширины контейнера для предотвращения обрезания текста.
Пример CSS-настроек:
p {
overflow-wrap: break-word;
word-wrap: break-word;
hyphens: auto;
white-space: normal;
max-width: 100%;
min-width: 200px;
}
Рекомендуется проверять результат на разных разрешениях экрана и учитывать атрибут lang для правильной работы переносов по слогам. Такой подход обеспечивает ровные строки, предотвращает переполнение контейнеров и улучшает визуальное восприятие текста.
Вопрос-ответ:
Что делает свойство word-wrap и как его использовать для переноса слов?
Свойство word-wrap управляет переносом длинных слов в пределах контейнера. Если задать значение break-word, браузер автоматически переносит слово на следующую строку при нехватке места. Пример: p { word-wrap: break-word; }. Это предотвращает выход текста за границы блока и улучшает читаемость.
Чем overflow-wrap отличается от word-wrap и какое свойство лучше использовать?
overflow-wrap является современным аналогом word-wrap и соответствует спецификации CSS3. Оно работает одинаково, разрывая длинные слова при нехватке места. Для совместимости с устаревшими браузерами можно указывать оба свойства одновременно: overflow-wrap: break-word; word-wrap: break-word;.
Как правильно использовать свойство hyphens для переноса по слогам в русском тексте?
Свойство hyphens добавляет дефисы при переносе слов по слогам. Для работы с русским текстом необходимо указать язык документа через <html lang="ru">. В CSS нужно прописать p { hyphens: auto; }. Браузер будет расставлять переносы с учётом правил языка.
Какие настройки CSS помогают сохранить читаемость текста на мобильных устройствах?
На узких экранах важно использовать комбинацию свойств: overflow-wrap: break-word;, hyphens: auto;, white-space: normal; и max-width: 100%;. Это позволяет тексту адаптироваться к ширине контейнера, переносить длинные слова и избегать горизонтальной прокрутки.
