Я пробовал проверить другие ответы, но все еще не понимаю, особенно после того, как увидел Справочник W3schools по HTML 5.

Я думал, что HTML 4.01 должен «разрешать» одиночным тегам быть только <img> и <br>. Затем появился XHTML с <img /> и <br /> (где кто-то сказал что есть место для старых браузеров).

Теперь мне интересно, как я должен форматировать свой код, когда практикуюсь в HTML 5.

Это <br>, <br/> или <br />?

2207
ehm 22 Дек 2009 в 16:39

30 ответов

Лучший ответ

Достаточно просто <br>.

Другие формы предназначены для совместимости с XHTML; чтобы можно было написать тот же код, что и XHTML, и заставить его работать как HTML. Некоторые системы, генерирующие HTML, могут быть основаны на генераторах XML и, следовательно, не имеют возможности выводить только простой тег <br>; если вы используете такую ​​систему, можно использовать <br/>, но в этом нет необходимости, если вам это не нужно.

Однако на самом деле очень немногие люди используют XHTML. Вам необходимо обслуживать свой контент как application/xhtml+xml, чтобы он интерпретировался как XHTML, и это не будет работать в старых версиях IE - это также будет означать, что любая небольшая ошибка, которую вы сделаете, помешает отображению вашей страницы в браузерах. которые поддерживают XHTML. Итак, большая часть того, что выглядит как XHTML в сети, на самом деле обслуживается и интерпретируется как HTML. Дополнительную информацию см. В разделе Обслуживание XHTML как text / html считается вредным.

1674
Manse 19 Фев 2016 в 11:40

Я думаю, что эта цитата из справочного проекта HTML 5 дает ответ:

3.2.2.2 Пустые элементы

Термин пустые элементы используется для обозначения элементов, которые должны быть пусто. Эти требования относятся только к синтаксису HTML. В XHTML все такие элементы рассматриваются как обычные элементы, но должны быть помечены как пустые элементы.

Эти элементы вообще не могут содержать какой-либо контент. В HTML эти элементы имеют только начальный тег. Можно использовать синтаксис самозакрывающегося тега. конечный тег необходимо опустить, поскольку элемент автоматически закрывается парсер.

Пример HTML:
Пустой элемент в синтаксисе HTML. Это не разрешено в синтаксисе XHTML.

<hr>

Пример:
Элемент void, использующий синтаксис самозакрывающегося тега, совместимый с HTML и XHTML.

<hr/>

Пример XHTML:
Элемент void, использующий синтаксис только для XHTML с явным конечным тегом. Это не разрешено для пустых элементов в синтаксисе HTML.

<hr></hr>
266
Dinei 13 Июн 2019 в 00:43

XML не позволяет оставлять теги открытыми, поэтому он делает <br> немного хуже, чем два других. Два других примерно эквивалентны второму (<br/>), предпочтительному для совместимости со старыми браузерами. На самом деле пробел перед / предпочтительнее для совместимости, но я думаю, что это имеет смысл только для тегов, у которых есть атрибуты. Так что я бы сказал либо <br/>, либо <br />, в зависимости от того, что нравится вашей эстетике.

Подводя итог: все три действительны, причем первый (<br>) немного менее "переносимый".

Изменить : теперь, когда мы все без ума от спецификаций, я думаю, стоит отметить, что согласно dev.w3.org:

Начальные теги состоят из следующих частей, расположенных точно в следующем порядке:

  1. Знак "<".
  2. Имя тега элемента.
  3. Необязательно, один или несколько атрибутов, каждый из которых должен быть перед ним стоит один или несколько пробелов персонажи.
  4. Необязательно, один или несколько пробелов.
  5. Необязательно, символ "/", который может присутствовать, только если element является пустым элементом.
  6. Символ ">".
145
SherylHohman 9 Янв 2019 в 16:36

В HTML (до HTML 4) : используйте <br>

В HTML 5 : <br> является предпочтительным, но также допустимы <br/> и <br />

В XHTML : <br /> является предпочтительным. Также можно использовать <br/> или <br></br>

Примечания:

  • <br></br> недопустим в HTML 5, это будет рассматриваться как два разрыва строки.
  • XHTML чувствителен к регистру, HTML не чувствителен к регистру.
  • Для обратной совместимости некоторые старые браузеры анализировали XHTML как HTML и не выполняли <br/>, но не <br />.

Справка:

116
JackDev 12 Июн 2014 в 05:15

Согласно спецификации ожидаемая форма: <br> для HTML 5, но закрывающая косая черта разрешена.

58
tvanfosson 11 Июн 2014 в 12:49

Я бы рекомендовал использовать <br /> по следующим причинам:

1) Текстовые и XML-редакторы, которые выделяют синтаксис XML разными цветами, будут правильно выделяться с помощью <br />, но это не всегда так, если вы используете <br>

2) <br /> обратно совместим с XHTML, а правильно сформированный HTML (например, XHTML) часто легче проверять на наличие ошибок и отлаживать.

3) Некоторые старые синтаксические анализаторы и некоторые спецификации кодирования требуют пробела перед закрывающей косой чертой (например: <br /> вместо <br/>), например спецификация кодирования плагина WordPress: http://make.wordpress.org/core/handbook/coding-standards/html/.

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

40
kmodev 20 Июн 2019 в 17:22

XML требует, чтобы все теги имели соответствующий закрывающий тег. Поэтому для тегов без внутреннего содержимого существует специальный сокращенный синтаксис.

HTML5 не является XML, поэтому он не должен предъявлять таких требований. Как и HTML 4.01.

Например, в спецификациях HTML5 все примеры с Тег br использует синтаксис <br>, а не <br/>.

UPD На самом деле <br/> разрешено в HTML5. 9.1.2.1, 7.

24
sastanin 22 Дек 2009 в 13:58

Если вас интересует сопоставимость (не совместимость, а сопоставимость), я бы остановился на <br />.

В противном случае <br> в порядке.

17
WonderWorker 22 Сен 2015 в 09:18
  1. Если вы выводите HTML на обычный веб-сайт, вы можете использовать <br> или <br/>, оба действительны в любое время, когда вы обслуживаете HTML5 как text / html.

  2. Если вы обслуживаете HTML5 как XHTML (т. Е. Тип содержимого application / xhtml + xml, с объявлением XML), вы должны использовать самозакрывающийся тег, например: <br/>.

    Если вы этого не сделаете, некоторые браузеры могут категорически отказать в отображении вашей страницы (в частности, Firefox очень строг в отношении отображения только действительных страниц xhtml + xml).

    Как отмечено в 1. <br/> также действителен для HTML5, который генерируется как XML, но обслуживается как обычный текст / html без объявления XML (например, из преобразования XSL, которое генерирует веб-страницы или что-то подобное).

Чтобы устранить путаницу: вставка пробела перед косой чертой не требуется в HTML5 и не имеет никакого значения для отображения страницы (если кто-нибудь может привести пример, я откажусь от этого, но я не верю, что это правда - но IE определенно делает много других странностей со всеми формами тегов <br>).

Отличный валидатор на http://validator.w3.org действительно полезен для проверки того, что является действительным (хотя я не уверен, что вы можете положиться на нем также проверить тип содержимого).

16
Iain Collins 20 Мар 2013 в 22:46

И <br>, и <br /> приемлемы в HTML5, но в духе HTML следует использовать <br>. HTML5 позволяет закрывающую косую черту для большей совместимости с документами, которые ранее были HTML 4.01 и XHTML 1.0, что упрощает переход на HTML5. Конечно, <br/> также приемлемо, но для совместимости с некоторыми старыми браузерами перед закрывающей косой чертой должен быть пробел (/).

15
kevinji 21 Апр 2011 в 18:50

И <br>, и <br/> подойдут, но я предпочитаю <br/>, потому что это немного более логично. Логично ожидать закрывающего тега всякий раз, когда есть открывающий тег. Поэтому ваш код будет немного легче читать, если вы не используете открывающий тег, когда закрывающего тега не будет.

Все браузеры (за исключением, возможно, очень старых, которые не имеют значения) будут отображать оба абсолютно одинаково. Однако <br> не поддерживает xHTML.

15
Dan Bray 28 Фев 2016 в 01:18

<br> и <br/> отображаются по-разному. Некоторые браузеры интерпретируют <br/> как <br></br> и вставляют два разрыва строки

9
Samuel 1 Дек 2010 в 04:27

<br> достаточно, но в XHTML <br /> предпочтительнее согласно WHATWG и согласно W3C.

Чтобы процитировать раздел 8.1.2.1 HTML 5.2 W3C Рекомендация, 14 декабря 2017 г.

Начальные теги должны иметь следующий формат:

Я пытаюсь переместить изображение под текст. Я попробовал (position: absolute) и переместил изображение с помощью -px, но я хочу, чтобы изображение оставалось на том же месте в HTML, но перемещалось с использованием только CSS. Я использую подход, ориентированный на мобильные устройства, и из-за дизайна рабочего стола IMG должен оставаться на том же месте в HTML. Я также попытался переместить текст, но он просто проходит по изображению или отступу и просто не работает. Это может быть проще объяснить скриншотами:

  1. После атрибутов или после имени тега, если атрибутов нет, может быть один или несколько пробелов. (За некоторыми атрибутами должен стоять пробел. См. §8.1.2.3 Атрибуты ниже.)

  2. Затем, если элемент является одним из пустых элементов или если элемент является чужеродным элементом, тогда может быть единственный символ U + 002F SOLIDUS (/). Этот символ не влияет на пустые элементы, но на сторонние элементы он отмечает начальный тег как самозакрывающийся.

Если вы используете Dreamweaver CS6, он будет автоматически заполняться как <br />.

Чтобы проверить свой HTML-файл в W3C, см .: http://validator.w3.org/

9
Community 20 Июн 2020 в 09:12

При проверке этого вопроса это действительно зависит от того, через какой !DOCTYPE вы пытаетесь пройти проверку.

Мне больше всего нравится 4.01 Trans, где я просто использую <br/>, и он удаляет предупреждения и ошибки, которые могли появиться во время проверки.

Строгий - гораздо более сложный зверь, он НЕНАВИЖИТ "SHORTTAGS" и буквально хочет только <br></br>

В HTML5 или "LAX" мира кода на самом деле нет правильного ответа, потому что там detects every example you put up как правильный ......

В конце концов, я думаю, что все, что имеет значение is what validation YOU PREFER или the person that you are working for prefers ... с движением lackadaisical в строгости кода в html5 мы видим ОЧЕНЬ ЛЕНИВЫЕ КОДЕРЫ

6
Slow Poke 16 Окт 2016 в 16:12

ИМХО, лучше использовать обычную нотацию (<br />) вместо снисходительной нотации (<br>) по следующим причинам:

Последовательность

В вашем HTML, вероятно, есть SVG, и SVG поддерживает только обычную нотацию (например, <rect />).

Взлом

Это не тот случай, когда такие фреймворки, как React и NativeScript использовать нотацию XML.
Ваш код разметки будет легче анализировать.

Ясность

Обычные обозначения легче читать и понимать даже поздно ночью.

Характеристики

И <br>, и <br /> являются допустимыми тегами HTML.

Вывод

Если вы используете полноценный текстовый редактор, настройте его для использования обычной нотации (которая называется XHTML от Эммета).
Например, в Visual Studio Code вам просто нужно добавить следующую строку в свои настройки:

"emmet.syntaxProfiles": {"html": "xhtml"}
6
isar 18 Май 2018 в 07:53

Хорошо, все, что я знаю, это то, что <br /> дает паузу с белой линией, а <br> просто дает паузу в некоторых случаях. Это случилось со мной, когда я настраивал IPN-скрипт (PHP), отправлял письма и проверял их в почтовом ящике. Не знаю почему, но я получил сообщение, чтобы выглядеть аккуратно, используя оба <br /> and <br>

Посмотрите почту здесь: http://snag.gy/cLxUa.jpg

Первые два раздела текста разделяются <br />, следовательно, строки с пробелами, последние три строки текста внизу и последний раздел разделяются <br> и просто дают новую строку.

5
Emanuel Olsson 30 Апр 2013 в 15:59

В большинстве случаев в HTML теги находятся в паре. Но для разрыва строки пара тегов не нужна. Поэтому для обозначения этого HTML использует формат <br/>. <br/> правильный. Используйте этот формат.

Тег <br> не имеет конечного тега в HTML В XHTML тег <br> должен быть правильно закрыт, например: <br />

В XML каждый тег должен быть закрыт. XHTML - это расширение XML, поэтому для правильного XHTML необходимо соблюдать все правила XML. Следовательно, даже пустые теги (узлы без дочерних узлов), такие как
, должны быть закрыты. XML имеет короткую форму, называемую самозакрывающимися тегами для пустых узлов. Вы можете написать <br></br> as <br />. Следовательно, в XHTML используется <br />.

HTML очень снисходителен в этом отношении, и такого правила нет. Таким образом, в HTML пустые узлы, такие как <br> <hr> <meta> и т. Д., Записываются без закрывающей косой черты.

HTML

<br>
<hr>
<meta name="keywords" content="">
<link rel="canonical" href="http://www.google.com/">

XHTML

<br />
<hr />
<meta name="keywords" content="" />
<link rel="canonical" href="http://www.google.com/" />

Не все теги можно закрывать самостоятельно. Например, такой тег как <script src="jQuery.min.js" /> не разрешен XHTML DTD.

5
Luis Masuelli 1 Июн 2018 в 19:59

<br/> - самый подходящий. Это обозначение тега также можно использовать в Reactjs, где требуется разрыв строки вместо <br>.

5
Murtaza Ahmad 17 Июн 2020 в 08:02

В HTML <br> и в XHTML <br/>.

Я предлагаю вам использовать <br/>.

4
Shubham Kumar 9 Июл 2016 в 21:36

<br> работает нормально. Более строгие версии, такие как XHTML, требуют добавления закрывающего, а действительно старые версии HTML, которые не включают DOCTYPE, делают <br> непустым тегом, например <br></br>.

Подведем итоги: <br> в порядке. Другие тоже в порядке.

4
Aravind Suresh 2 Сен 2016 в 16:30

Если вы используете HTML5, то использование <br> - правильный путь :)

4
Flight Dude 15 Май 2020 в 14:32

<br> не требует закрывающего тега. Согласно W3S:

Тег
- это пустой тег, что означает, что у него нет конечного тега.

Он также поддерживается всеми основными браузерами. HTML-тег

Для получения дополнительной информации посетите здесь.

4
Alireza 4 Ноя 2020 в 01:10

<br> отлично работает в HTML5. HTML5 дает немного больше свободы действий, чем XHTML.

4
Sebastian Simon 25 Фев 2021 в 15:31

Как и многие другие, приемлемы как <br>, так и <br/>.

Я предполагаю, что компромисс - это лучшая читаемость и обратная совместимость <br/> по сравнению с отправкой на один символ меньше конечным пользователям с <br>.

И поскольку Google использует <br>, я тоже.

(Конечно, имейте в виду, что они могут обслуживать меня <br>, потому что я использую Chrome, который, как они знают, поддерживает его. В IE они могут все еще обслуживать <br/>)

3
Dimitris 25 Июн 2014 в 14:08

Эммм ... кто-нибудь знает ОДНОГО поставщика, пользовательского агента или производителя браузеров, которые когда-либо следовали спецификациям W3C на 100% ??? Так что, если HTML5 утверждает, что поддерживает все три версии элементов прерывания, можно поспорить, что поставщики поддерживают такие же и даже более неаккуратные версии!

ЕДИНСТВЕННОЕ, что имеет значение в этой дискуссии, - это ПОСТОЯННО использовать кодирование, которое также соответствует спецификациям XML, а также спецификациям HTML, когда это возможно. Это означает, что вы должны использовать правильную XML-версию тега break и поощрять всю свою команду делать то же самое:

<br />

Такой же формат косой черты должен применяться для тегов img, a, hr и meta в вашем коде. Почему? Потому что:

  1. Он обратно совместим со старыми пользовательскими агентами / браузерами XHTML.
  2. Поставщики браузеров в любом случае поддерживают версию XML, поэтому спецификация HTML5 является спорной.
  3. Неряшливые реализации большинства пользовательских агентов сегодня, в прошлом и в будущем примут это.
  4. Это позволяет вашей разметке быть сопоставимой со стандартами XML, если вам нужно вернуться к созданию документов XHTML / XML из вашей разметки.
  5. «Хорошая практика кодирования» для ВСЕХ ВЕБ-РАЗРАБОТЧИКОВ - продолжать использовать твердые методы разметки, соответствующие XML, включая кодирование в нижнем регистре, атрибуты в кавычках, экранированные символы XML и т. Д. И т. Д. Почему? В будущем, если вам придется переключиться на данные XML, вы автоматически будете кодировать и думать в формате XML.
  6. Мы можем только надеяться, что в будущем World Wide Web мы отойдем от стандартов, реализуемых частными поставщиками, и вернемся к твердой, надежной, проверенной разметке, которая быстрее анализирует, быстрее перемещает данные по проводам и сделает наш будущий Интернет более стандартизированным. среда с использованием XML.

Кроме того, в этом мире роботов и машин, где у роботов нет тех же проблем с кодированием человеческого интерфейса, которые HTML5 решает для нас, они с радостью вернутся к системам данных XML и будут анализировать такие веб-страницы пользовательского интерфейса намного быстрее при преобразовании в XML. данные.

3
Stokely 17 Май 2017 в 19:23

В HTML5 слэш больше не нужен: <br>, <hr>

2
Danyal Aytekin 8 Ноя 2017 в 14:33

Просто используйте <br>. Не использовать <br></br>. <br> - это специальный тег, который, в отличие от большинства тегов, не требует закрытия.

1
YJiqdAdwTifMxGR 2 Окт 2020 в 23:57

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

-1
ShaZam 5 Мар 2021 в 04:01

<br> и <br /> обрабатываются по-разному в некоторых браузерах, поэтому выбор одного из них не повредит вашему проекту, но ожидается, что массовый поиск .. замена повлияет на отображение страницы в некоторых браузерах, что может привести к дополнительной работе для вас или даже к затруднению, если изменение ни на что не повлияет в вашем тестовом браузере, но нарушит его в предпочтительном браузере ваших клиентов ».

Я предпочитаю <br>, поскольку это то, что я использовал со времен Erwise и Netscape Navigator (ранние веб-браузеры), но нет причин не выбирать вместо него <br />. Это может быть полезно для предварительной обработки, сравнения и т. Д.

Даже если ваш выбор сводится к предпочтению внешнего вида одного перед другим, или вы (или ваш любимый редактор HTML, например Dreamweaver) можете захотеть, чтобы ваш код был совместим с xml. Тебе решать.

Небольшое примечание:

Не путайте с br, но, кроме того, вы также можете рассмотреть возможность использования тегов wbr в своем HTML: тег возможности разрыва слова, который указывает, где в тексте можно добавить строку - сломать.

Для дальнейшего чтения прочтите спецификацию HTML5.

-2
WonderWorker 22 Сен 2015 в 09:38

Элементы без конечных тегов называются пустыми тегами. В html 4 и html 5 закрывающие теги не требуются и могут быть опущены.

В xhtml теги такие строгие. Это означает, что он должен начинаться с начального тега и заканчиваться конечным тегом.

-3
Mahesh Peri 10 Ноя 2017 в 12:11