Требуется ли закрывающий тег для пользовательских элементов?

Элементы, которые я определил (не требующие содержимого), похоже, отлично работают без закрывающего тега. Мне вот интересно, неужели это просто причуда браузера?

Какой вердикт? Возможно ли это теоретически? Что, если парсер увидит элемент до его определения?


person Community    schedule 30.05.2014    source источник
comment
Можете привести пример элемента? И подробности об используемом вами браузере, если вы считаете, что это актуально?   -  person Jamie Bull    schedule 30.05.2014
comment
Что касается теоретически: пустые элементы с самозакрывающимся открытым тегом (например, <P />) определенно должны быть возможны. На практике, однако, из того, что я читал (например, на SO), браузеры, к сожалению, в основном просто игнорировали самозакрывающиеся открытые теги.   -  person Sz.    schedule 11.09.2019
comment
По теме: github.com/w3c/webcomponents/issues/624.   -  person Константин Ван    schedule 08.12.2019


Ответы (1)


да. Для настраиваемых элементов требуется закрывающий тег. Только определенные теги в HTML могут быть самозакрывающимися из-за синтаксического анализатора.

Ниже приведен полный список элементов void в HTML:

область, база, br, col, команда, вставлять, hr, img, input, keygen, link, meta, param, source, track, wbr

а также :

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

http://www.w3.org/TR/html-markup/syntax.html#syntax-elements

person ebidel    schedule 30.05.2014
comment
В дополнение к этому, когда я перестал закрывать теги, синтаксический анализатор вставил их довольно поздно. Таким образом, <x-foo> <x-bar> <x-baz> интерпретировался как <x-foo> <x-bar> <x-baz> </x-baz> </x-bar> </x-foo>, что может привести к некоторым неожиданным результатам. - person Peter Burns; 31.05.2014