Закрытие тегов SVG, явное или само закрытие?
Я проверил свой код и получил следующую ошибку Tag cannot be self-closing. Use an explicit closing tag.
в IE для моего пути svg, потому что он сам закрывается.
<path
d="m53.911,10.023c-1.46-.898-3.195-1.019-4.699-1.019h-3.439c"
/>
Теперь я знаю, что метатеги в HTML5 не требуют прямой тире /
, вы просто закрываете их с помощью >
. То же самое относится к тэгам svg? Например:
<path
d="m53.911,10.023c-1.46-.898-3.195-1.019-4.699-1.019h-3.439c"
>
Или... Использование явного закрывающего тега? Например:
<path
d="m53.911,10.023c-1.46-.898-3.195-1.019-4.699-1.019h-3.439c"
>
</path>
Каков правильный способ закрытия пути?
Ответы
Ответ 1
Какая бы проверка, которую вы используете, работает некорректно.
Теги SVG и MathML закрываются внутри HTML, если они заканчиваются на /" > . То есть Вы можете написать путь как <path></path>
или <path/>
, но вы не можете записать его как <path>
Ответ 2
Ответ Роберта Лонгсона замечателен, но ссылки на документ, отмеченный as:
Этот документ был прекращен и доступен только для исторических целей.
Я хотел найти некоторые современные спецификации по этому поведению, и вот что я нашел:
A Самозакрывающийся тег - это специальная форма начального тега с косой чертой непосредственно перед закрывающей правой скобой. Они указывают, что элемент должен быть немедленно закрыт и не имеет содержимого. Если этот синтаксис разрешен и используется, конечный тег должен быть опущен. В HTML использование этого синтаксиса ограничено недействительными элементами и чужими элементами. Если он используется для других элементов, он рассматривается как начальный тег.
Источник: W3C Редактор HTML5 Reference Editor
Начальные теги должны иметь следующий формат:
...
- Затем, если элемент является одним из элементов void или если элемент является внешним элементом, тогда может быть один символ U + 002F SOLIDUS (/). Этот символ не влияет на элементы void, но на внешних элементах он отмечает начало тега как самозакрывающееся.
Источник: Уровень жизни HTML из WHATWG
и HTML: Living Standard - техническая спецификация для веб-разработчиков
Поддержка встроенных SVG и MathML
...
Синтаксис <foo/>
открывается и немедленно закрывает элемент foo, если он является элементом MathML или SVG (т.е. не является элементом HTML).
Источник: HTML5 Parser в Mozilla Developer Network
Заключение: то, что Роберт Лонгсон написал в его ответе, остается в силе. Это предупреждение в инструментах разработчика IE11 неверно. Использование самозакрывающегося синтаксиса в HTML5 является допустимым (но только для элементов void, таких как <br/>
; или внешних элементов, которые являются элементами из MathML и SVG).