Почему <br/ "> и не <br/" >?
Это одна из тех вещей, которые вы читаете один раз, скажите "ага!". и затем забыть. Точно мое дело.
Почему тег разрыва строки в xhtml предпочтительно написан с пробелом <br />
, а не в формате ok <br/>
? Я помню, что причина была интересной, и, как вы можете себе представить, ее легко найти с помощью google.
Конечно, это не проблема корректности xml. Из W3C
[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
Empty-element tags may be used for any element which has no content, whether
or not it is declared using the keyword EMPTY. For interoperability, the
empty-element tag should be used, and should only be used, for elements which
are declared EMPTY.
Examples of empty elements:
<IMG align="left" src="http://www.w3.org/Icons/WWW/w3c_home" />
<br></br>
<br/>
Таким образом, пространство в конце является необязательным.
Ответы
Ответ 1
Если я правильно помню это, просто потому, что у некоторых старых браузеров были проблемы с самозакрывающимся тегом без пробела перед косой чертой. В настоящее время я сомневаюсь, что это проблема, но многие разработчики (включая меня) вошли в привычку включать пространство.
Изменить: Ах, вот мы:
http://www.w3.org/TR/xhtml1/#guidelines
Включить пробел перед конечными/и > пустыми элементами, например. <br />
, <hr />
и <img src="karen.jpg" alt="Karen" />
. Кроме того, используйте синтаксис с минимальным тегом для пустых элементов, например. <br />
, поскольку альтернативный синтаксис <br></br>
, разрешенный XML, дает неопределенные результаты во многих существующих пользовательских агентах.
Ответ 2
w3c указывает это как грамматику:
EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
Это означает открытую скобку, имя, количество токенов (пробел и атрибут), дополнительное пространство, косую черту и конечный тег. В соответствии с этим оба правильны.
Ответ 3
Некоторые старые браузеры не правильно анализировали элемент без пробела, поэтому большинство веб-разработчиков используют <br />
. Я не помню, какие браузеры были неправы, но я считаю, что они просто вымерли.
EDIT: Браузер был Netscape 4.
Ответ 4
В XHTML нет правильного пути. Они формально идентичны в XML. Пробел не имеет значения в этом месте.
Ответ 5
Для XHTML: оба из них. Для HTML4 и более ранних версий:.
Ответ 6
<br />
является действительным (старым) HTML, а <br/>
- нет. Если вы используете XHTML как XML, это не имеет значения. Если вы используете его как text/html
, тогда он должен быть действительным HTML в дополнение к действительным XHTML. (Зачем служить XHTML как HTML? Поскольку IE не понимает XHTML как XML, и потому, что ни один из основных браузеров не начнет рендеринг XHTML в середине загрузки загружаемого текста, но они будут делать это с HTML. Мой блог медленно загружается не потому, сайт медленный, но потому, что браузер не начнет показывать страницу до тех пор, пока все не будет выбрано. Я ненавижу браузеры.)
Ответ 7
Небольшой фон, чтобы добавить к Мэтту Гамильтону ответ.
По меньшей мере один браузер проблем был Netscape 4. Быстрая проверка показывает, что в этом браузере < br/ > (т.е. нет места) не вызывает разрыв строки. На самом деле, похоже, он ничего не делает. < br/ > (т.е. с пространством) выполняет разрыв строки.
При создании документов Polyglot, которые могут вести себя как XHTML или HTML (Примечание: "вести себя как" - не "действительно" ), необходимо использовать либо < br/ > или <br> </br> . Однако в старых браузерах и даже в современных браузерах при рендеринге страницы в режиме quirks </br> ведет себя как <br> , поэтому <br> </br> производит два разрыва строки.
Ответ 8
Оба <br/>
и <br />
верны. Причина, по которой <br />
появилась в первую очередь, заключалась в поддержке старых браузеров, которые не понимали новый синтаксис <br/>
. Это действительно хак, где /
интерпретируется как атрибут без значения и игнорируется.
Ответ 9
Оба правильные, и оба будут приняты веб-браузерами. Вы также можете сэкономить дополнительный символ и использовать <br/>
Ответ 10
Оба правильные. Но я бы использовал <br />
только для того, чтобы мой код был непротиворечивым... потому что я никогда не напишу
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
вместо
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
просто для сохранения байта... а вторая версия imho лучше читаема. Но это только вопрос вкуса. Делайте это как хотите, но делайте это последовательно: -)
Ответ 11
Либо все будет отлично. Предполагая, что вы просите евангельские причины, я предпочитаю < br/ >
Ответ 12
Оба правильные.
Ответ 13
<br>
. Вы все равно не используете XML.