Вопрос по html5 – Закрытие тегов в HTML5

33

В HTML5 все еще уместно закрыть<br> пометить с<br />?

Это очевидно также относится ко всем другим отдельным тегам. Я понимаю, что это на самом деле не влияет на то, как все работает, но какова здесь лучшая практика?

someLines of txt <br>            // How you see a lot of people doing it
and then some <br />             // XHTML style! Should I still be doing this? 
ow im not done yet.. <br> </br>  // No one does this right? RIGHT?!
@Brad & # x2014; Валидатор W3C не готов для HTML5. При проверке прямого ввода, опцияValidate HTML fragment есть только эти два варианта:HTML 4.01, XHTML 1.0, Это может быть хорошо. ;-) Nicolas Barbulesco
Между<br> а также<br/> не имеет значения, что сказал<br/> Вы отправляете дополнительный символ, который игнорируется браузером. Так зачем использовать пропускную способность? Все это складывается. Greg
Что этоHTML Validation Service сказать тебе? Brad
@ Грег Неверно, смотрите мой комментарий ниже принятого ответа. Что касается пропускной способности & # x2013; используйте сжатый контент и попробуйте, если вы видите разницу. Или вы работаете на Google или Amazon, где разница в один бит действительно имеет значение? Konrad Rudolph

Ваш Ответ

3   ответа
5

я думаю, что лучше придерживаться стандартов XHTML, даже закрывая так называемыеvoid элементы, как отмечено @Alex. Если ваш код также является допустимым XML, то выmay найдите лучшую инструментальную поддержку для управления вашим кодом

<br>  // not valid XML without a closing tag

<br /> // valid XML and I prefer this

<br></br>  // valid XML but unnecessary clutter

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

[EDIT]

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Если вы кодируете HTML5, тогда клиенты / браузеры должны поддерживать строгий стандарт

Я убрал пробел из ответа, как предлагалось
Хорошо, у меня было пространство между<br> и</br>, который не подтверждает. Возможно, вам следует отредактировать свой ответ, чтобы убрать пробел из этого дела.
<br> </br> по-прежнему выдает ошибки при использовании валидатора W3 при использовании переходного типа документа XHTML 1.0. Я получаю сообщение "Возможно, вы забыли закрыть элемент или, возможно, вы намеревались" закрыть себя " элемент, то есть заканчивающийся на "/ & gt;" вместо "& gt;". " Я что-то здесь упускаю?
Если вы используетеXHTML 1.0 Transitional это подтвердит<br> </br>, Вы правы, что не проверяет использованиеHTML
<br> </br> недопустимый HTML.
1

/ действителен & amp; игнорируется в HTML 5 дляпустые элементы, из которыхbr один, так что это полностью зависит от вас, хотя лично я бы выйти из привычки, как его наследство. (Факт, что это пустой элемент, означает, что, как вы говорите;<br> </br> бессмысленно)

Согласно спецификации вы ссылаетесь на: «Void элементы имеют только начальный тег; конечные теги не должны указываться для пустых элементов & quot ;, поэтому я думаю, что ответ заключается в использовании<br> или же<br/>.
34

W3C спецификация для HTML:

The following is a complete list of the void elements in HTML:

area, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr

Void elements only have a start tag; end tags must not be specified for void elements.

Start tags consist of the following parts, in exactly the following order:

A < character. The element’s tag name. Optionally, one or more attributes, each of which must be preceded by one or more space characters. Optionally, one or more space characters. Optionally, a / character, which may be present only if the element is a void element. A > character.

Из этого кажется, что мы можем использовать либо<br> или же<br/>, Тем не менее, конец тега</br> являетсяnot действительный, поэтому не используйте<br> </br>.

Выполнение следующего черезСлужба проверки HTML указывает так же.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Testing void elements</title>
</head>
<body>
    some lines of txt <br>
    and then some more <br />
    I'm not done yet... <br> </br> <!-- This line generates an error -->
</body>
</html>

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

Edit: Как отметил Брэд,<br /> Также допустим XHTML, поэтому, возможно, лучше выбрать эту форму.

Просто интересно, почему наличие действительного XML было бы преимуществом?
Я должен был сказать действительный XHTML. Некоторые люди любят быть очень строгими. Я обновил свой ответ на XTML, а не на XML.
@Greg Потому что тогда вы можете использовать более строгий синтаксический анализатор, чтобы сказать вам, действительна ли ваша разметка. Я не могу сосчитать, как часто я был укушен правильной, но логически неправильной разметкой HTML из-за неправильного вложения или подобных вещей, о которых мне говорил бы валидатор XML. Мой последний проект в HTML5 использовал HTML вместо XHTML, и он будет моим последним. Чертова трата времени & # x2013; гораздо больше, чем написание дополнительных символов для самозакрывающихся тегов.
@NicolasBarbulesco Готов к HTML5. При проверке разметки кода, которую я разместил в своем ответе, я получаю сообщение об ошибке "Ошибка при проверке этого документа какHTML5! & Quot ;. На самом деле, раскрывающийся список типов документов содержит около 26 вариантов, так что вы можете указать более двух вариантов. Однако служба проверки W3C предупреждает, что средство проверки соответствия HTML5an experimental feature, Так что он готов к HTML5, но сам HTML5 может измениться, и валидатор может не соответствовать самому последнему стандарту. Если вы заметили, что это не так,then report it
Я согласен с @Konrad. Вот почему в моем ответе упоминалось & quot;better tool support& Quot; при использовании XHTML / XML

Похожие вопросы