На практике использование самозакрывающихся тегов в HTML должно работать так, как вы ожидаете. Но если вы беспокоитесь о написании правильного 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. Это означает, что для тех элементов, которые определены как таковые, требуются самозакрывающиеся теги .)