关闭SVG标签,显式还是自闭?

Bor*_*rsn 23 html html5 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中的meta标签不需要前进短划线/,只需将它们关闭即可>.同样的事情是否适用于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>

关闭路径的正确方法是什么?

Den*_*aia 35

Robert Longson的答案很棒,但链接到标记为:

本文档已停产,仅供历史使用.


我想找到一些关于这种行为的最新规范,这是我发现的:

一个自动关闭标签是一种特殊形式的开始标签与关闭右尖括号前立即斜线.这些表示该元素将立即关闭,并且没有内容.在允许和使用此语法的情况下,必须省略结束标记.在HTML中,此语法的使用仅限于void元素外部元素.如果它用于其他元素,则将其视为开始标记.

资料来源:W3C HTML5参考编辑草案

开始标记必须具有以下格式:

...

  1. 然后,如果元素是void元素之一,或者如果元素是外来元素,则可能存在单个U + 002F SOLIDUS字符(/).此字符对void元素没有影响,但在外部元素上,它将开始标记标记为自动关闭.

来源:WHATWGHTML的HTML生活标准:生活标准 - Web开发人员的技术规范

内联SVG和MathML支持

...

<foo/>如果它是MathML或SVG元素(即不是HTML元素),语法将打开并立即关闭它.

资料来源:Mozilla开发者网络的HTML5 Parser


结论:Robert Longson在他的回答中所写的内容仍然有效.IE11开发人员工具中的此警告是错误的.在HTML5中使用自闭语法是有效的(但仅适用于void元素,例如<br/>;或外来元素,即MathML和SVG中的元素).


Rob*_*son 21

无论你使用什么验证工作都不正确.

如果SVG和MathML标记以/>结尾,则它们在HTML中自动关闭.即你可以写为路径<path></path><path/>,但你不能把它写成<path>

  • 如果你有一个带有自闭标记的SVG,你会在IE11开发工具中看到这个 (27认同)
  • 也在 Microsoft Edge“HTML1500”中 (2认同)