Почему тег <img> не закрыт в HTML?
Что касается раритета, почему тег < img > не закрыт в HTML?
<img src="smiley.gif" alt="Smiley face" height="42" width="42">
Я также заметил, что теги img явно закрыты в XHTML...
<img src="smiley.gif" alt="Smiley face" height="42" width="42"/>
W3Schools: тег изображения
Ответы
Ответ 1
Исторически, HTML был основан на SGML, который позволяет пропускать теги при определенных условиях.
Поскольку элемент <img>
не может иметь дочерних узлов, он определяется как ПУСТОЙ, а конечный тег запрещен (поскольку это нецелесообразно).
XHTML - это HTML, выраженный в XML, а XML не поддерживает факультативные или запрещенные теги (хотя он позволяет самозакрывающемуся тегу заменять пару стартового и конечного тегов), поэтому он должен быть явно закрыт там.
HTML 5 обратно совместим с версиями HTML, которые были основаны на SGML.
Ответ 2
Тег <img>
представляет то, что известно как элемент void (см. спецификация HTML5), так называемый потому что он не может иметь никакого содержимого (в отличие, скажем, <a>
или <div>
). Поэтому нет синтаксической причины, по которой ее нужно будет закрыть в HTML.
XHTML, однако, основан на XML, где каждый тег должен быть закрыт.
Ответ 3
Это то, что называется элементом void, который просто означает, что элемент не должен иметь никакого содержимого (но может иметь атрибуты.) Спецификация HTML5 имеет это, чтобы сказать о элементах void:
если элемент является одним из элементов void, или если элемент является внешним элементом, то может быть единственным символом "/" (U + 002F). Этот символ не влияет на элементы void
Таким образом, нет никакой реальной причины иметь единственный символ "/" (U + 002F), но он не сломает ничего, если он включен.
Ответ 4
Тег <img>
- это в основном элемент Void.
Для вашего понимания:
У изображения нет содержимого. Тег изображения просто укажет путь, из которого будет загружен ресурс через атрибут src. Таким образом, он не требует никакого конечного элемента.
В то время как <img src="smiley.gif" alt="Smiley face" height="42" width="42"/>
, этот код предназначен для версии XHTML.