HTML 5: <br>, <br/> или <br />? - PullRequest
       83

HTML 5: <br>, <br/> или <br />?

1889 голосов
/ 22 декабря 2009

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

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

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

<!DOCTYPE HTML>

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

Ответы [ 24 ]

1432 голосов
/ 22 декабря 2009

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

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

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

209 голосов
/ 22 декабря 2009

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

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

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

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

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

<hr>

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

<hr/>

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

<hr></hr>
131 голосов
/ 22 декабря 2009

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

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

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

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

  1. Символ "<". </li>
  2. Имя тега элемента.
  3. Опционально, один или несколько атрибутов, каждый из которых должен быть предшествует один или несколько пробелов символы.
  4. При желании один или несколько пробелов.
  5. При желании символ "/", который может присутствовать только в том случае, если элемент является пустым элементом.
  6. Символ ">".
101 голосов
/ 30 декабря 2013

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

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

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

Примечания:

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

Справка:

54 голосов
/ 22 декабря 2009

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

20 голосов
/ 22 декабря 2009

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

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

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

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

17 голосов
/ 16 января 2014

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

13 голосов
/ 22 декабря 2009

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

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

12 голосов
/ 28 января 2013
  1. Если вы выводите HTML на обычном веб-сайте, вы можете использовать <br> или <br/>, оба действительны в любое время, когда вы используете HTML5 в качестве текста / 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 действительно полезен для проверки того, что действительно (хотя я не уверен, что вы также можете полагаться на него, чтобы также проверять тип контента).

12 голосов
/ 21 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...