Пустий елемент
Пустий елемент – це елемент в HTML, який не може мати жодних дочірніх вузлів (тобто вкладених елементів або текстових вузлів). Пусті елементи мають лише початковий тег; кінцеві теги для пустих елементів не повинні задаватися.
У HTML пустий елемент не повинен мати кінцевого тега. Наприклад, <input type="text"></input>
є недійсним HTML. На відміну від цього, елементи SVG або MathML, які не можуть мати жодних дочірніх вузлів, можуть використовувати кінцевий тег замість синтаксису самозакривального тега XML у своєму початковому тегу.
Специфікації HTML, SVG та MathML дуже чітко визначають, що який елемент може вміщати. Тому деякі комбінації тегів не мають семантичного змісту.
Попри те, що немає способу розмітити пустий елемент як такий, що має будь-яких нащадків, дочірні вузли можна додавати програмно до елемента в DOM за допомогою JavaScript. Але це не є доброю практикою, оскільки результат не буде надійним.
Пусті елементи в HTML такі:
Самозакривальні теги
Самозакривальні теги (<tag />
) в HTML не існують.
Якщо в початковому тегу елемента HTML присутній символ /
(скісна риска), то розбирачі HTML цей символ ігнорують. Це особливо важливо пам'ятати стосовно елементів штибу <script>
і <ul>
, які вимагають присутності кінцевого тега. У таких випадках додавання риски в кінці початкового тега не закриває елемент. Замість цього риска в кінці ігнорується, і елемент вважається відкритим, поки не зустрінеться явний кінцевий тег або поки розбирач неявно не закриє елемент на основі структури HTML і правил розбору. Наприклад, у випадку <div/>Якийсь текст
браузери розтлумачать це як <div>Some text</div>
, розглядаючи риску як проігноровану та вважаючи, що елемент div охоплює текст, який стоїть після нього.
Проте частина форматувальників коду додають символ скісної риски в кінець початкових тегів пустих елементів, щоб вони були сумісними з XHTML і їх було легше читати. Наприклад, деякі форматувальники коду перетворять <input type="text">
на <input type="text" />
.
Самозакривальні теги обов'язкові для пустих елементів у XML, XHTML і SVG (наприклад, <circle cx="50" cy="50" r="50" />
).
У SVG та MathML елементи, які не можуть мати жодних дочірніх вузлів, можна позначити як самозакривальні. У таких випадках, якщо початковий тег елемента позначений як самозакривальний, то елемент не повинен мати кінцевого тега.
Примітка: Якщо символ
/
(скісна риска) в кінці початкового тегу безпосередньо передує значенню атрибута без лапок – без пробілу між ними – то така скісна риска стає частиною значення атрибута, а не видаляється розбирачем. Наприклад, розмітка<img src=http://www.example.com/logo.svg/>
призводить до того, що значенням атрибутаsrc
єhttp://www.example.com/logo.svg/
– що робить URL неправильним.