W3docs

HTML тег <br>

Тег HTML <br> используется для переноса строки. Узнайте об использовании тега <br>, его стилизации с помощью CSS и смотрите примеры.

Тег HTML <br> вставляет одиночный перенос строки. На этой странице объясняется, когда перенос строки является частью содержимого (и <br> — правильный инструмент), когда речь идёт об отступах или макете (и здесь нужен CSS), как экранные дикторы его обрабатывают, а также какие альтернативы — например, <pre> или CSS-свойство white-space — подходят для стихов и преформатированного текста.

Определение

Тег HTML <br> определяет перенос строки. В отличие от тега <p>, который создаёт абзацный отступ, тег <br> просто переносит следующий текст на новую строку без добавления дополнительного вертикального пространства.

Главное правило: используйте <br> только тогда, когда перенос строки является частью самого содержимого — текст, который по природе своей структурирован построчно, например почтовый адрес, стихотворение или текст песни. Если перенос начинает новую мысль — это абзац, используйте <p>. Если перенос нужен для отступа или визуального макета — это задача для CSS, а не <br>.

Строка текста, разбитая на две строки с помощью тега br

Синтаксис

Тег <br> является пустым элементом в HTML5, то есть не требует закрывающего тега. Однако в XHTML он должен быть самозакрывающимся (<br />).

Пример использования тега HTML <br>:

пример тега br

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h1>Example of the &lt;br&gt; tag usage.</h1>
    <p> Inside the paragraph, we can put the tag &lt;br /&gt;, <br /> to transfer a part of the text to another line if necessary.</p>
  </body>
</html>

Применение

Используйте <br> только тогда, когда перенос строки относится к содержимому. Типичные случаи — почтовые адреса, стихи и тексты песен, где структура строк несёт смысловую нагрузку.

Пример: адрес с <address> и <br>

Почтовый адрес — классический пример использования <br>: каждая строка действительно является отдельной строкой одного блока, а не отдельным абзацем. Элемент <address> обеспечивает семантику контактной информации, а <br> форматирует строки.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <address>
      Jane Doe<br />
      123 Main Street<br />
      Springfield, IL 62704<br />
      USA
    </address>
  </body>
</html>

Пример: стихи и тексты песен

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h1>Example of the &lt;br&gt; tag usage</h1>
    <blockquote>
      But I'm not the only one<br />
      I hope some day you'll join us<br />
      And the world will live as one.<br />
    </blockquote>
    <cite>John Lennon "imagine"</cite>
  </body>
</html>

Когда не следует использовать <br>

<br> предназначен для структурирования строк, а не для отступов или макета. Два распространённых случая неправильного использования:

  • Разделение абзацев. Разрыв между двумя самостоятельными мыслями — это граница абзаца. Оберните каждый блок в <p>.
  • Создание вертикальных промежутков. Несколько тегов <br> подряд для того, чтобы сдвинуть контент вниз — это презентационный трюк. Отступы должны задаваться через CSS с помощью свойства margin.
Опасно

Не используйте <br> для разделения абзацев или добавления отступов. Используйте элементы <p> совместно со свойством CSS margin для управления вертикальным пространством.

Доступность: почему несколько <br><br> подряд вредно

Экранные дикторы объявляют каждый <br> как перенос строки. Если вы ставите несколько подряд, чтобы создать видимый промежуток — например <br><br><br> — диктор произносит «перенос строки, перенос строки, перенос строки», что является шумом без смысла и нарушает поток чтения. Кроме того, пустые строки не имеют семантической связи с окружающим текстом, поэтому вспомогательные технологии не могут помочь пользователю понять структуру документа.

Правильное решение — выразить промежуток через CSS. Замените следующее:

<p>First paragraph.</p>
<br /><br /><br />
<p>Second paragraph.</p>

на это:

<style>
  .gap-below {
    margin-bottom: 3rem;
  }
</style>

<p class="gap-below">First paragraph.</p>
<p>Second paragraph.</p>

CSS-версия сохраняет два абзаца как настоящие абзацы и позволяет margin управлять визуальным расстоянием, так что экранный диктор ничего лишнего не объявляет.

Альтернативы для стихов и преформатированного текста

Когда весь блок структурирован построчно, управление переносами с помощью CSS или <pre> зачастую чище, чем расстановка <br> по всей разметке. Краткая схема принятия решений:

  • Несколько намеренных переносов внутри текста (адрес, единичная строка в абзаце): используйте <br>.
  • Блок, где переносы строк в исходном коде — это именно те переносы, которые нужны, но пробелы должны сворачиваться (например, стихи): задайте white-space: pre-line на контейнере, чтобы переносы строк в HTML стали реальными переносами без каких-либо <br>.
  • Текст, где каждый пробел и перенос строки должны сохраняться в точности (код, ASCII-арт): используйте элемент <pre>, который отображает содержимое моноширинным шрифтом и соблюдает все пробелы.
<style>
  .poem {
    white-space: pre-line;
  }
</style>

<p class="poem">
  Roses are red
  Violets are blue
</p>

Здесь переносы строк берутся из исходного текста, а white-space: pre-line превращает их в видимые переносы — без <br>.

Атрибуты

Тег <br> когда-то принимал атрибут clear, управлявший взаимодействием переноса с плавающими элементами. Этот атрибут был удалён в HTML5 и не должен использоваться.

АтрибутЗначениеСтатус
clearall / left / right / noneУдалён в HTML5 — не использовать

Чтобы предотвратить обтекание контента вдоль плавающего элемента, используйте CSS-свойство clear:

.below-float {
  clear: both;
}

Тег <br> поддерживает глобальные атрибуты и атрибуты событий.

Практика

Практика
Какое утверждение корректно описывает тег HTML br?
Какое утверждение корректно описывает тег HTML br?
Практика
Какой элемент является пустым (void) элементом без закрывающего тега и содержимого?
Какой элемент является пустым (void) элементом без закрывающего тега и содержимого?
Was this page helpful?