На практике использование самозакрывающихся тегов в HTML должно работать так, как вы ожидаете.Но если вас беспокоит написание valid HTML5, вы должны понимать, как использование таких тегов ведет себя в двух разных синтаксических формах, которые вы можете использовать.HTML5 определяет как синтаксис HTML, так и синтаксис XHTML, которые похожи, но не идентичны.Какой из них использовать, зависит от типа носителя, отправляемого веб-сервером.
Скорее всего, ваши страницы обслуживаются как text/html
, что соответствует более мягкому синтаксису HTML.В этих случаях HTML5 позволяет определенным начальным тегам иметь дополнительный / до его завершения>.В этих случаях / является необязательным и игнорируется, поэтому <hr>
и <hr />
идентичны.Спецификация HTML называет эти «пустые элементы» и предоставляет список допустимых.Строго говоря, необязательный / действителен только в начальных тегах этих пустых элементов;например, <br />
и <hr />
являются допустимыми HTML5, а <p />
- нет.
В спецификации HTML5 четко разграничивается то, что правильно для авторов HTML и разработчиков веб-браузеров.группа обязана принимать все виды недопустимого «устаревшего» синтаксиса.В этом случае это означает, что HTML5-совместимые браузеры будут принимать недопустимые самозакрывающиеся теги, такие как <p />
, и отображать их, как вы, вероятно, ожидаете.Но для автора эта страница не будет действительной HTML5.(Что еще более важно, дерево DOM, которое вы получаете, используя этот вид недопустимого синтаксиса, может быть серьезно испорчено; например, самозакрывающиеся теги <span />
имеют тенденцию портить много ).
(В необычном случае, когда ваш сервер знает, как отправлять файлы XHTML в виде типа MIME XML, страница должна соответствовать синтаксису DTD и XML XHTML. Это означает, что самозакрывающиеся теги требуются для тех элементов, которые определены как таковые.)