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


2034

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

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

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

Является ли это <br>, <br/>или <br />?


1
Какой бы из них вы ни использовали сегодня, учтите, что некоторые вспомогательные технологии (например, программы чтения с экрана), вероятно, объявят об этом. NVDA говорит «пустой», например. Пользователи программы чтения с экрана, скорее всего, не получат ничего, кроме шума от этого дополнительного объявления. Попробуйте добавить role="presentation"атрибут, за исключением тех редких случаев, когда перенос строки работает как «контент».
Brennanyoung

В соответствии с текущей спецификацией "6. Тогда, если элемент является одним из элементов void, или если элемент является сторонним элементом, тогда может быть один символ SOLIDUS U + 002F (/). Этот символ не влияет на void elements " html.spec.whatwg.org/multipage/syntax.html#start-tags
Тим Абелл

Ответы:


1544

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

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

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


23
Но в любом случае наличие действительного xml не подразумевает обслуживания xhtml. Это может быть полезно для всех видов локальной предварительной обработки.
Майкл Крелин - хакер

29
Да, но вы должны быть очень осторожны при обработке HTML как XML. Это разные языки, и только подмножество каждого совместимо. Например, в XML, <br/>то же самое <br></br>, но последний не является допустимым HTML.
Брайан Кэмпбелл

10
Брайан, идея заключалась в том, что вы можете сделать так, чтобы ваш HTML был правильно сформированным XML, вот и все. Конечно, при преобразовании одного в другое вы должны убедиться, что он все еще действует, но стоит ли упоминать? :)
Майкл Крелин - хакер

5
@Marco Я не думаю, что document.write ужасно быстр по сравнению с фактическим (x) html (потому что он должен быть выполнен). В любом случае, Javascript не обязательно доступен на всех компьютерах, поэтому веб-сайты, которые чрезмерно полагаются на них, не очень гибки. Кроме того, HTML не имеет функций.
Michael0x2a

8
@Marco: Да, я не знал, document.write что не работает в xhtml - спасибо, что поделились. Я согласен, что было бы глупо для веб-приложений пытаться делать что-либо без Javascript, но я пытался сказать, что веб-сайты, которые почти на 100% основаны на Javascript, более хрупкие и могут потерпеть неудачу, когда пользователи отключают JavaScript (или используют старые телефоны или что-то)
Michael0x2a

227

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

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

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

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

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

<hr>

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

<hr/>

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

<hr></hr>

22
Итак, ответ заключается в том, чтобы кодировать желательно без косой черты и пробела, но иметь косую черту (с пробелом или без пробела) - необязательно?
Эйкерн

67
Мне нравится, что спецификация не особенно конкретна (с этой точки зрения) "Мех, делай, что хочешь!"
Мэтт Эллен

42
Поскольку это необязательно, мне нравится больше, />потому что это хорошо для удобства чтения.
BrunoLM

38
Мне нравится явно закрывать свои теги безо всякой причины, кроме того, что это кажется правильным и имеет смысл, когда я читаю / пишу код. Я рад, что справочный проект HTML5 согласен со мной.
Синтаксическая ошибка

7
Кажется довольно специфичным для меня. <br> и <br /> являются допустимыми HTML5.
Уильям Деннисс

135

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

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

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

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

  1. Символ «<».
  2. Имя тега элемента.
  3. По желанию, один или несколько атрибутов, каждому из которых должен предшествовать один или несколько пробелов.
  4. При желании один или несколько пробелов.
  5. Необязательно, символ «/», который может присутствовать, только если элемент является пустым элементом.
  6. Символ «>».

17
HTML на самом деле не XML, просто довольно близко к нему.
tloach

6
Да, это не так. Но /это общий знаменатель здесь. HTML5, в частности, позволяет использовать /: «Необязательно, символ« / », который может присутствовать, только если элемент является пустым элементом».
Майкл Крелин - хакер

4
helloworlder, я бы сказал, что спецификация HTML5 близка к XML-совместимости.
Майкл Крелин - хакер

5
Я просто хотел бы добавить, что в XML и HTML ML обозначает язык разметки. Причина, по которой между ними так много совпадений, заключается в том, что они оба изначально были определены с использованием SGML (стандартизированного обобщенного языка разметки), но не многие сейчас его помнят ...
Джон Винсент,

4
@BennyNeugebauer, если вы используете регулярные выражения для анализа html, вам более или менее нужно полагаться на свою удачу, а не на закрытые теги ;-)
Майкл Крелин - хакер

104

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

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

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

Ноты:

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

Ссылка:


проверил ссылку, предпочтительный подход - <br>, но где он говорит, что он не приемлем?
JackDev

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

1
Можете ли вы привести ссылку на предпочтительный синтаксис не-XML в HTML5? Это новость для меня. Насколько я помню, дополнительная поддержка строгого соответствия XML была основной целью HTML5. Возможно, я что-то упустил в документе HTML vs. XHTML на whatwg.org или в разметке полиглота W3C: надежный профиль словаря HTML5 на W3C.
Василий Бурк

1
@BasilBourque Чтобы повторить то, что я сказал вам в другом месте. Прочитайте фактическую спецификацию в HTML5 для тегов и элементов, и вы никогда, НИКОГДА не найдете ни рекомендации, ни предложения требовать или предлагать использовать закрывающую косую черту для этих тегов. Если вы хотите использовать XML или XHTML, то вы не используете HTML, и это другая история. НЕ используйте закрывающую косую черту для этих тегов HTML. В другом месте спецификация говорит, что вы можете поместить его туда, но это ничего не значит, ничего не делает, и браузеры проинструктированы игнорировать это. Поэтому бессмысленно и бесполезно использовать его так же бессмысленно и бесполезно.
Роб

@Rob So Раздел 8.1.2.1. Начало теги из раздела 8. HTML синтаксис документа, HTML 5.2 W3C Recommendation, 14 декабря 2017 , опубликованный W3C не является фактической спецификации HTML? Пожалуйста, порекомендуйте.
Василий Бурк


27

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


1
Хорошо сформированный HTML не XHTML.
Jmarkmurphy

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

2
HTML может быть правильно сформирован, но не может быть действительным XML. W3Schools не всегда самый авторитетный справочник.
jmarkmurphy

Профессор университетского курса компьютерных наук по веб-программированию, который я взял в 1997 году, также заявил, что xhtml - это правильно сформированный html. Я не уверен, откуда вы получаете информацию, можете ли вы привести какие-либо официальные источники в Интернете, чтобы сделать резервную копию вашей претензии?
Кмейкснер

1
@jmarkmurphy, я думаю, что, возможно, вы не знакомы с термином «правильно сформированный», который является техническим жаргонным термином для обозначения требования к стандартам XML и XHTML о том, что все теги должны иметь закрывающие теги и должны быть вложены в правильном порядке. , <hr> и <br> не соответствуют требованиям XML и XHTML, поскольку у них нет закрывающих тегов, например: <br /> или <br> </br> допустимы, <br> не является допустимыми XHTML или XML , HTML, конечно, не имеет правильно сформированного требования, поэтому <br> и <hr> действительны только в HTML.
Кмейкснер,

20

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

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

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

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


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

14

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

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


1
Кто-то должен откатить это назад. Значение изменилось.
Иосия

9
Что подразумевается под сопоставимостью? Я не понимаю
смокинг

12

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


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

Этот ответ, как и другие, неверно преуменьшает законность строгого соответствия XML в HTML5. Поддержка XML не является функцией временного перехода или миграции. Необязательная поддержка соответствия XML была основной целью HTML5. Это жизненно важная функция для людей, использующих инструменты XML для работы со своим HTML-контентом.
Василий Бурк

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


подождите, text / html mimetype это строгий XML?
amwinter

1
Вы не должны использовать его с объявлением XML, если используете text / html, но содержимое может быть иным допустимым XML (например, сгенерированным из чего-то, что выводит XML, например, из вывода XSLT или из объекта, который сериализуется в XML).
Иэн Коллинз

До сих пор не понимаю: если текст / HTML должен иметь <br />, когда я должен использовать незакрытый <br>?
amwinter

1
Извините, оба технически действительны для HTML5, если это через text / html. Вы можете подтвердить это с помощью (в основном) потрясающего валидатора по адресу validator.w3.org . Моя формулировка выше плохая, я вижу, что сейчас, отредактирую ее.
Иэн Коллинз

3
Я думаю, что Netscape Navigator 3 или 4 не понравился <br/>, конечно, не о чем беспокоиться в наши дни.
Робертc

12

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

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


7

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


12
Какая? Вы знаете, какие браузеры?
Eikern

7
Обнаружил это при тестировании браузеров эпохи ie5 / ns4. Если я правильно помню, это было т.е. в режиме соответствия стандартам. Но это было давно ...
Самуил

3
Для строгих браузеров HTML4 (что практически является валидатором HTML4), <br />значит <br>&gt;.
Конрад Боровски

7

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

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

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

...

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

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

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

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


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

5

При проверке этого вопроса это действительно зависит от того, через что !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мы видим ОЧЕНЬ ЛЕНИСТЫЕ КОДЕРЫ


4

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

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

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

Hackability

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

ясность

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

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

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

Вывод

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

"emmet.syntaxProfiles": {"html": "xhtml"}

1
Строго говоря, они оба являются короткими нотациями: короткая нотация HTML и короткая нотация XML, соответственно. Полное обозначение есть <br></br>, и оно действительно в X (HT) ML, но не в HTML.
Илья Стрельцын

1
HTML5 не представил <br>. Это всегда должно быть в HTML. Представлен XHTML <br/>
jmarkmurphy,

1
Чтобы войти в историю этого правильно, вам нужно углубиться в SGML.
Майкл Кей,

3

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

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

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


3
Что это был за браузер?
Дейв Бертон


2

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

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

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

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


2

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

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


2

Не в HTML5 слэш больше нет необходимости: <br>,<hr>


Слэш никогда не был необходим и никогда не указывался в какой-либо спецификации HTML или даже не использовался в качестве примера в спецификации.
Роб

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

@BasilBourque Пожалуйста, прочитайте точную спецификацию для этих тегов в HTML и не поднимайте XML или XHTML, которые не являются предметом здесь. Вы никогда не найдете письменной формулировки или примеров в какой-либо спецификации для HTML в истории Интернета, где используется, требуется или даже предлагается закрывающая косая черта.
Роб

1
@Rob Все, что я могу сделать, это повторить: W3C опубликовал документ под названием HTML 5.2, где раздел 8.1.2.1. Начальные теги прямо говорят, что самозакрывающийся тег с или с косой чертой действителен, в пункте № 6: Затем, если элемент является одним из пустых элементов, или если элемент является сторонним элементом, то может быть один U + 002F Символ SOLIDUS (/). Этот символ не влияет на пустые элементы, но для внешних элементов он помечает начальный тег как самозакрывающийся. В других документах, на которые я ссылаюсь, объясняется, что если вы выражаете ваш HTML5 как XML, слеш требуется.
Василий Бурк

1
@BasilBourque Я никогда не говорил, что это не действительно. Я сказал, что это не имеет смысла и не имеет смысла, как вы сами цитировали. И, опять же, вы приводите XML в качестве оправдания для использования его в HTML. Не делай этого! Они не одно и то же! Мы называем это «супом тега», когда анализатор HTML должен интерпретировать содержимое XML.
Роб

2

В большинстве случаев в 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>etc, пишутся без закрывающей косой черты.

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" />не разрешен DTD XHTML.


1

Ммм ..... кто-нибудь знает ОДНОГО поставщика, агента пользователя или производителя браузера, который когда-либо следовал 100% спецификациям W3C ??? Так что, если 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. данные.




0

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


-3

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

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

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

Краткое примечание:

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

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


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

-4

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

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


1
Неправильно. Одиночный тег так же действителен в HTML5, как и пара начальных и конечных тегов. Смотрите спецификацию HTML 5.2 .
Василий Бурк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.