HTML 5: это <br>, <br/> или <br />?

1691

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

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

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

<!DOCTYPE HTML>

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

Теги:

25 ответов

1414
Лучший ответ

Просто <br> достаточно.

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

Тем не менее, очень немногие люди используют XHTML. Вы должны служить вашему контенту как application/xhtml+xml для его интерпретации как XHTML, и это не будет работать в старых версиях IE - это также означает, что любая небольшая ошибка, которую вы делаете, будет препятствовать тому, чтобы ваша страница отображалась в браузерах, которые делают поддержка XHTML. Таким образом, большинство из того, что похоже на XHTML в Интернете, фактически обслуживается и интерпретируется как HTML. См. Обслуживание XHTML как text/html считается вредоносным для получения дополнительной информации.
  • 19
    Но в любом случае наличие действительного xml не подразумевает обслуживания xhtml. Это может быть полезно для всех видов локальной предварительной обработки.
  • 18
    Да, но вы должны быть очень осторожны при обработке HTML как XML. Это разные языки, и только подмножество каждого совместимо. Например, в XML <br/> - это то же самое, что и <br></br> , но последний не является допустимым HTML.
Показать ещё 18 комментариев
211

Я думаю, что эта цитата из HTML 5 Reference Draft дает ответ:

Некоторые элементы, однако, запрещены от содержания какого-либо контента вообще. Они известны как пустотные элементы. В HTML, приведенный выше синтаксис не может быть использован для недействительных элементов. Для таких элементов, конечный тег должен быть опущен, поскольку элемент автоматически закрывается парсер. Такие элементы включают, среди прочих, br, hr, link и meta​​p >

Пример HTML:

<link type="text/css" rel="stylesheet" href="style.css">

В XHTML синтаксис XML требования диктуют, что это должно быть явно или явно end tag, как указано выше, или пустой синтаксис элементов. Это достигается вставка косой черты в конце начать тег непосредственно перед правом угловой кронштейн.

Пример:

<link type="text/css" href="style.css"/>

Авторы могут по выбору выбрать использование этот же синтаксис для элементов void в синтаксис HTML. Некоторые авторы также выберите включение пробелов перед косой чертой, однако это не необходимо. (Использование пробелов в этом мода - это соглашение, унаследованное от рекомендации по совместимости в XHTML 1.0, Приложение С.)

  • 21
    Итак, ответ заключается в том, чтобы кодировать желательно без косой черты и пробела, но иметь косую черту (с пробелом или без пробела) - необязательно?
  • 0
    @Eikem Да, верно.
Показать ещё 8 комментариев
129

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

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

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

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

  1. Символ "<".
  2. Элементы тега name.
  3. По желанию, один или несколько атрибутов, каждому из которых должен предшествовать один или несколько пробелов.
  4. При желании один или несколько пробелов.
  5. Необязательно, символ "/", который может присутствовать только в том случае, если элемент является пустым элементом.
  6. Символ ">".
  • 15
    HTML на самом деле не XML, просто довольно близко к нему.
  • 5
    Да, это не так. Но / это общий знаменатель здесь. HTML5, в частности, позволяет использовать / : «Необязательно, символ« / », который может присутствовать, только если элемент является пустым элементом».
Показать ещё 7 комментариев
95

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

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

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

Примечания:

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

Ссылка:

  • 0
    проверил ссылку, предпочтительный подход - <br>, но где это говорит <br/> это не приемлемо?
  • 3
    Для пояснения, для XML-совместимого синтаксиса <br/> и <br /> (с пробелом) одинаковы, без каких-либо предпочтений. Смотрите спецификацию XML 1.0 . Пробел (SPACE, tab или LINE FEED) перед /> является необязательным, без каких-либо предпочтений.
Показать ещё 4 комментария
50

В соответствии с spec ожидаемая форма <br> для HTML 5, но допускается закрытие косой черты.

19

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

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

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

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

  • 0
    «HTML5 - это не XML, поэтому он не должен ставить такое требование». Правильно это или нет, зависит от толкования слова «HTML5». Если мы говорим о HTML5 как о языке, то это утверждение верно. Однако если мы говорим о HTML5 как о спецификации, то это утверждение неверно. Спецификация HTML5 определяет «словарь и связанные API для HTML и XHTML». Я знаю, что это немного придирчиво, я не говорю, что этот ответ неправильный, просто даю дополнительную информацию для читателя.
13

Я бы рекомендовал использовать < 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> может быть проблематичным в старых браузерах и инструментах.

  • 0
    Хорошо сформированный HTML не является XHTML.
  • 1
    XHTML - это правильно сформированный HTML по определению. XHTML следует правилам XML, согласно w3schools: «XML - это язык разметки, где документы должны быть правильно размечены (быть« хорошо сформированными ») ... ... Благодаря сочетанию сильных сторон HTML и XML, XHTML был разработан. XHTML - это HTML, переработанный как XML. " (см. w3schools.com/html/html_xhtml.asp )
Показать ещё 4 комментария
11

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

  • 1
    @ Knickerless-Noggins Я не уверен, где вы это читаете, но <br /> вполне приемлемо, и W3Schools не является спецификацией для HTML. См. Спецификацию HTML5 , в которой четко указано, что «Тогда, если элемент является одним из элементов void или если элемент является сторонним элементом , тогда может быть один символ« / »(U + 002F) . ]»
  • 0
    Этот ответ, как и другие, неверно преуменьшает законность строгого соответствия XML в HTML5. Поддержка XML не является функцией временного перехода или миграции. Необязательная поддержка соответствия XML была основной целью HTML5. Это жизненно важная функция для людей, использующих инструменты XML для работы со своим HTML-контентом.
11

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

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

  • 11
    @mindstalker написал compARAbility, а не comPATible.
  • 1
    Кто-то должен откатить это назад. Значение изменилось.
Показать ещё 1 комментарий
10

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

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

9
  • Если вы выводите HTML на обычный веб-сайт, вы можете использовать <br> или <br/>, оба действительны в любое время, когда вы используете HTML5 как text/html.

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

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

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

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

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

  • 0
    подождите, текст / HTML Mimetype является строгим XML?
  • 1
    Вы не должны использовать его с объявлением XML, если используете text / html, но содержимое может быть иным допустимым XML (например, сгенерированным из чего-то, что выводит XML, например, из вывода XSLT или из объекта, который сериализуется в XML).
Показать ещё 3 комментария
6

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

  • 12
    Какие? Вы знаете, какие браузеры?
  • 7
    Нашел это при тестировании браузеров эпохи ie5 / ns4. Если я правильно помню, это было т.е. в режиме соответствия стандартам. Но это было давно ...
Показать ещё 1 комментарий
5

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

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

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

...

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

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

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

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

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

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

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

Strict - гораздо более сложный зверь, он HATES "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, мы видим некоторые ОЧЕНЬ ЛАЗИРОВАННЫЕ КОДЫ

3

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

консистенция

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

Hackability

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

ясность

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

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

Оба <br> и <br/> являются действительными HTML - теги.

Заключение

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

"emmet.syntaxProfiles": {"html": "xhtml"}
  • 1
    Строго говоря, они оба являются короткими нотациями: короткая нотация HTML и короткая нотация XML, соответственно. Полная нотация <br></br> действительна в X (HT) ML, но не в HTML.
  • 1
    HTML5 не представил <br>. Это всегда должно быть в HTML. XHTML введен <br/>
Показать ещё 2 комментария
2

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

  • 0
    Слэш никогда не был необходим и никогда не указывался ни в одной спецификации HTML, и даже не использовался в качестве примера в спецификации.
  • 0
    @ Роб, я не знаю, где вы получите ваши спецификации HTML, но я получаю их от организаций WHATWG и W3C. Оба публикуют спецификации, которые четко определяют строгое соответствие XML как необязательную функцию HTML5. Это, в частности, включает закрытие отдельных тегов с помощью /> . См. Разделы 8.1.2.1 и 2 . И посмотрите документ HTML vs. XHTML на whatwg.org и разметку полиглота W3C: надежный профиль словаря HTML5 на W3C.
Показать ещё 3 комментария
2

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

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

2

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

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

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

  • 3
    Что это был за браузер?
1

Большинство случаев в 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.

1

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

Сумма: <br> в порядке. Другие тоже просто прекрасны.

1

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

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

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

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

0
I know that the form <br> will work, though I still find myself going back to the older formats.
0

Ummm..... кто-нибудь знает одного поставщика, пользователя или агента браузера, который когда-либо следил за спецификациями W3C 100%??? Поэтому, если HTML5 говорит, что он поддерживает все три версии элемента break, вы можете поспорить, что поставщики поддерживают те же самые и даже более sloppier-версии!

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

<br />

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

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

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

-1

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

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

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

Быстрая заметка:

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

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

  • 5
    См. Спецификацию HTML5 , в которой четко указано, что «Тогда, если элемент является одним из элементов void или если элемент является сторонним элементом , тогда может быть один символ« / »(U + 002F) . ] " <br> , конечно, является пустым элементом, как вы можете видеть в ссылке в цитате.
-3

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

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

  • 0
    Неправильно. Одиночный тег так же действителен в HTML5, как и пара начальных и конечных тегов. Смотрите спецификацию HTML 5.2 .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню