Вопрос по html – В чем разница между <tag> </ tag> и <tag /> в HTML? [Дубликат]

4

Possible Duplicate:
Using the XHTML closing slash (/) on normal tags?
Are self-closing tags valid in HTML5?

Я просматривал много HTML-кода, а также JavaScript, который синтезирует HTML, и я заметил, что если в теге есть какой-то тег без содержимого, то есть два способа его указать. Либо так:

<div id="container"></div>

или вот так:

<div id="container" />

Есть ли разница между этими двумя?

@zzzzBov & # x2014; Хотя вопрос немного отличается, он достаточно близок, чтобы принятьAre self-closing tags valid in HTML5? отвечает и на этот вопрос. Quentin
С таким высоким уровнем репутации, я подозреваю, что это законный вопрос, и его нельзя закрывать. Я всегда хотел знать, почему самозакрывающиеся теги не всегда работают так, как вы ожидаете (например, не можете использовать самозакрывающийся тег сценария при включении js) John Weldon
Другие вопросы задают вопрос о том, возможно ли это, этот вопрос спрашивает, в чем разница. Это не дурак. zzzzBov

Ваш Ответ

3   ответа
-2

Первый пример - строгий HTML, а второй - строгий xHTML.

До HTML5, когда вам приходилось указывать, используете ли вы HTML или xHTML, использование неправильного синтаксиса приведет к ошибкам проверки, а иногда и к проблемам с отображением. Использование типа документа HTML5 делает спор спорным.

Во-вторых, второй пример - это один из самозакрывающихся тегов, в данном случае пустойdiv, но многие теги в спецификации xHTML поддерживают это, в том числеimg, link, metaи любой другой тег, который в противном случае был бы пустым.

Error: User Rate Limit Exceeded<div />Error: User Rate Limit Exceeded
-1

<div id="container"/> это правильный способ написания тегов XHTML, которые не содержат содержимого. Обычно это<img/>, <br/>, и тому подобное.<div> предназначен для содержания внутри него, так сказать<div id="container"/>в то время как приемлемо, кажется менее читабельным.

Error: User Rate Limit ExceededaError: User Rate Limit Exceeded<div></div>Error: User Rate Limit Exceeded<div/>Error: User Rate Limit Exceeded
4

Браузеры нормализуют неверную разметку в правильной форме:

<div /> технически неверная разметка (HTML 5), так какdiv не является самозакрывающимся тегом.

Браузер нормализует его<div>.

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

Самозакрывающийся тег не имеет дочерних элементов и значения для внутреннего текста (null):

<foo />

Закрытый тег не имеет дочерних элементов и внутреннего текста (пустая строка):

<foo></foo>
<div />Error: User Rate Limit Exceeded<div>Error: User Rate Limit Exceeded<div></div>
Error: User Rate Limit Exceeded

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