Используя то, что я считаю довольно стандартным встроенным svg:
<!DOCTYPE html>
<html>
<body style="padding:50px">
<svg width="100" height="100">
<circle cx="50" cy="50" r="20" />
</svg>
</body>
</html>
IE (11) дает мне предупреждение "HTML1500: тег не может быть самозакрывающимся. Используйте явный закрывающий тег". (Вкладка DevTools, Console).
Верно, что если я изменил значение <circle..
на:
<circle cx="50" cy="50" r="20"></circle>
предупреждение уходит, но это выглядит странно для меня..
IE devtools иногда обнаруживают реальные ошибки незакрытых тегов, поэтому было бы грустно видеть, что это делает ненужным этот шум.
Есть ли способ сделать IE счастливым, не прибегая к добавлению закрывающих тегов?
Обновление: Обратите внимание, что вопрос касается "Внешние элементы", а не "Элементы Void" (http://www.w3.org/html/wg/drafts/html/master/single-page.html#elements-2). <svg>
не является самозакрывающимся (он определен как принадлежащий к категории элементов контейнера: http://www.w3.org/TR/SVG/struct.html#SVGElement).
<circle..
определяется как элемент базовой формы (http://www.w3.org/TR/SVG/shapes.html#CircleElement), что означает, что он самозакрывается. При чтении 8.1.2 спецификации html5:
Внешние элементы, начальный тег которых отмечен как самозакрывающиеся, не могут иметь любое содержимое (поскольку, опять же, поскольку нет конечного тега, ни один контент не может быть между стартовым тегом и конечным тегом). Иностранные элементы, чьи начальный тег не помечен как самозакрывающийся, может иметь текст, символ ссылки, разделы CDATA, другие элементы и комментарии, но текст не должен содержать символ U + 003C LESS-THAN SIGN (<) или неоднозначный амперсанд.
мне кажется (как мне кажется), что теги внутри элемента <svg>
(т.е. внешние элементы) являются самозакрывающимися, если svg-spec говорит, что они есть, а при определении начальных тегов (8.1.2.1) # 6 говорит, что /
в <tagname ... />
является необязательным, например, <br/>
, но не на <circle ../>
:
Затем, если элемент является одним из элементов void или если элемент внешний элемент, то может быть один символ U + 002F SOLIDUS (/). Этот персонаж не влияет на элементы пустоты, но на чужие элементы маркируют начальный тег как самозакрывающийся.
Поэтому я считаю, что документ соответствует как есть. Я не уверен, что использование закрывающего тега </circle>
будет соответствовать.