overflow-wrap
Свойство в CSS позволяет указать , что браузер может разорвать строку текста внутри целевого элемента на несколько строк в ином неразрывном месте. Это помогает избежать необычно длинной строки текста, вызывающей проблемы с разметкой из-за переполнения.
.example ( overflow-wrap: break-word; )
Значения
normal
: по умолчанию. Браузер разбивает строки в соответствии с обычными правилами переноса строк. Слова или непрерывные строки не сломаются, даже если они переполняют контейнер.break-word
: слова или строки символов, которые слишком велики, чтобы поместиться в их контейнер, будут разорваны в произвольном месте, чтобы вызвать разрыв строки. Символ дефиса не будет вставлен, даже еслиhyphens
свойство используется.inherit
: целевой элемент должен наследовать значениеoverflow-wrap
свойства, определенного для его непосредственного родителя.
В демонстрации ниже есть кнопка переключения, которая позволяет переключаться между normal
и break-word
.
См. Демонстрацию переноса пером / переноса слов Луи Лазариса (@impressivewebs) на CodePen.
Чтобы продемонстрировать проблему, которую overflow-wrap
пытается решить, демонстрация использует необычно длинное слово внутри относительно небольшого контейнера. Когда вы break-word
включаете, слово разрывается, чтобы уместить небольшой объем доступного пространства, как если бы слово было несколькими словами.
Строка неразрывных пробелов (
) будет обрабатываться таким же образом и также будет разрываться в подходящем месте.
overflow-wrap
полезен при применении к элементам, которые содержат немодерируемый пользовательский контент (например, разделы комментариев). Это может предотвратить нарушение макета веб-страницы длинными URL-адресами и другими непрерывными строками текста (например, вандализмом).
Сходства с word-break
собственностью
overflow-wrap
и word-break
ведут себя очень похоже и могут использоваться для решения аналогичных проблем. Краткое описание различий, как объясняется в спецификации CSS:
overflow-wrap
обычно используется, чтобы избежать проблем с длинными строками, вызывающими нарушение макета из-за того, что текст выходит за пределы контейнера.word-break
определяет возможности мягкого переноса между буквами, обычно связанными с такими языками, как китайский, японский и корейский (CJK).
После описания примеров того, как word-break
можно использовать контент CJK, в спецификации говорится: «Чтобы включить дополнительные возможности прерывания только в случае переполнения, см. overflow-wrap
«.
Исходя из этого, мы можем предположить, что word-break
это лучше всего использовать с неанглоязычным контентом, который требует определенных правил разбиения слов, и который может перемежаться с английским контентом, в то время как его overflow-wrap
следует использовать, чтобы избежать разбивки макетов из-за длинных строк, независимо от используемого языка. .
Историческая word-wrap
собственность
overflow-wrap
- стандартное имя своего предшественника, word-wrap
свойства. word-wrap
изначально была проприетарной функцией только для Internet Explorer, которая в конечном итоге стала поддерживаться во всех браузерах, несмотря на то, что не была стандартом.
word-wrap
принимает те же значения overflow-wrap
и ведет себя так же. Согласно спецификации, браузеры «должны рассматривать word-wrap
как альтернативное имя overflow-wrap
свойства, как если бы оно было сокращением overflow-wrap
«. Кроме того, все пользовательские агенты должны поддерживать word-wrap
бессрочную поддержку по устаревшим причинам.
Оба overflow-wrap
и word-wrap
будут проходить проверку CSS, если валидатор настроен на проверку на соответствие CSS3 или выше (в настоящее время по умолчанию).
Связанный
- разрыв слова
- дефисы
- белое пространство
- Обработка длинных слов и URL-адресов
Дополнительная информация
- Word-Wrap: свойство CSS3, которое работает в любом браузере
- Обертка переполнения на W3C
- Обсуждение Stack Overflow на
word-break
vs.overflow-wrap
Поддержка браузера
Эти данные о поддержке браузером взяты из Caniuse, где есть более подробная информация. Число означает, что браузер поддерживает эту функцию в этой версии и выше.
Рабочий стол
Хром | Fire Fox | IE | Край | Сафари |
---|---|---|---|---|
23 | 49 | 11 | 18 | 6.1 |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 4.4 | 7,0-7,1 |
Указанная выше «частичная» поддержка связана с поддержкой старых браузеров, word-wrap
но не из-за этого overflow-wrap
. Использование обоих может обеспечить обратную совместимость.
Черновая версия спецификации W3C редактора включает новое значение, называемое break-spaces
последовательностью «сохраненных» символов пробела. Нет известных браузеров, поддерживающих эту функцию, и она не включена в рабочую черновую версию спецификации.