W3docs

HTML тег <wbr>

Тег HTML <wbr> отмечает возможность переноса слова: место, где длинное слово или URL может переноситься при необходимости. Синтаксис и примеры.

HTML-тег <wbr> (Word BReak opportunity — возможность переноса слова) отмечает место внутри текста, где браузер может вставить перенос строки, если строка иначе выйдет за границу контейнера. Он не принудительно вставляет перенос — он лишь добавляет возможность сделать его в этом месте. Если слово умещается в строке, <wbr> вообще ничего не отображает.

Это отличается от тега <br>, который всегда принудительно вставляет перенос строки. С <wbr> браузер делает перенос в этом месте только тогда, когда нужно обернуть длинную, неразрывную строку — например, URL, путь к файлу или очень длинное слово.

Тег <wbr> является одним из элементов HTML5.

Зачем использовать <wbr>?

По умолчанию браузеры переносят строки на пробелах и дефисах. Длинная строка без пробелов — URL, путь к файлу, хеш или составное длинное слово — не имеет естественной точки переноса, поэтому браузер делает одну из двух нежелательных вещей:

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

Размещение <wbr> в подходящих местах сообщает браузеру: «вот безопасное место для переноса строки, если не хватает места». Переносы появляются только при необходимости, поэтому на широком экране строка остаётся цельной.

Перенос длинного URL — наиболее частый случай

Длинный URL без пробелов — классический случай применения <wbr>. Добавьте <wbr> после косых черт или точек, чтобы ссылка аккуратно переносилась внутри узкой колонки вместо выхода за границу:

<p style="width: 220px; border: 1px solid #ccc; padding: 8px;">
  Read it here:
  https://<wbr>www.w3docs.com<wbr>/learn-html<wbr>/html-wbr-tag
</p>
Result

На широком экране URL остаётся на одной строке, но внутри контейнера шириной 220px выше он переносится только в разрешённых вами точках <wbr>.

<wbr> для длинного слова

<wbr> также помогает с отдельными чрезвычайно длинными словами. Сравните абзац с возможностями переноса и без них:

<p>This is the longest word you can ever meet in the English language pneumonoultramicroscopicsilicovolcanoconiosis</p>

<p>This is the longest word you can ever meet in the English language pneumono<wbr>ultra<wbr>micro<wbr>scopic<wbr>silico<wbr>volcano<wbr>coniosis</p>

Первый абзац может выйти за границу контейнера; второй аккуратно переносится между слогами, когда места не хватает.

<wbr> vs. &shy; vs. CSS

<wbr> — один из нескольких способов управлять переносом текста. Каждый ведёт себя по-разному, поэтому выбирайте подходящий инструмент:

ТехникаЧто делаетПоказывает дефис?
<wbr>Отмечает возможность переноса в разметке. Переносит только при необходимости.Нет
&shy; (мягкий дефис)Отмечает возможность переноса. Переносит только при необходимости.Да — в месте переноса появляется дефис
CSS overflow-wrap: break-wordПозволяет браузеру переносить длинное слово в любом месте, чтобы избежать переполнения.Нет
CSS word-break: break-allПринудительно вставляет переносы между любыми двумя символами.Нет

Когда что выбирать:

  • Используйте <wbr>, когда вы знаете правильные точки переноса (после каждого / в URL, между слогами) и хотите, чтобы дефис не отображался.
  • Используйте &shy;, когда вам нужен тот же контроль, но с дефисом в месте переноса — идеально для расстановки переносов в настоящих словах.
  • Используйте CSS overflow-wrap / word-break, когда вы не можете (или не хотите) редактировать каждую строку вручную и просто хотите предотвратить переполнение по всему сайту. Обычно это лучший выбор для пользовательского контента, где вы не контролируете текст.
Опасно

Тег <wbr> не добавляет дефис в месте переноса строки. Если вы хотите, чтобы дефис появлялся только в конце перенесённой строки, используйте вместо него &shy; (символьный объект мягкого дефиса).

Пример с путём к файлу

Здесь <wbr> позволяет пути к файлу Windows переноситься после каждого сегмента с обратной косой чертой:

<p>You can find the file by going
  C:\user\docs\Letter.txt
</p>

Без возможностей переноса весь путь перейдёт на следующую строку. Добавление элементов <wbr> позволяет ему аккуратно переноситься:

<p>You can find the file by going C:<wbr>\user<wbr>\docs<wbr>\Files<wbr>\Letter.txt</p>

Синтаксис

Тег <wbr> является пустым элементом, поэтому у него нет закрывающего тега. В XHTML его необходимо самозакрывать как <wbr/>.

Полный пример HTML-тега <wbr>

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <p>Example of a long string of text without wbr.</p>
    <p>This is the longest word you can ever meet in the English language pneumonoultramicroscopicsilicovolcanoconiosis</p>
    <p>Example of a long string of text with wbr.</p>
    <p>This is the longest word you can ever meet in the English language pneumono<wbr />ultra<wbr />micro<wbr />scopic<wbr />silico<wbr />volcano<wbr />coniosis</p>
  </body>
</html>

Результат

Пример тега wbr

Атрибуты

Элемент <wbr> не имеет специфических атрибутов. Он поддерживает только глобальные атрибуты и атрибуты событий.

Практика

Практика
Какова основная цель HTML-элемента wbr?
Какова основная цель HTML-элемента wbr?
Was this page helpful?