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

时间:2014-06-19 06:20:54

标签: html html5 svg

我正在验证我的代码,并在IE中为我的svg路径收到以下错误Tag cannot be self-closing. Use an explicit closing tag.,因为它已自动关闭。

<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>

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

2 个答案:

答案 0 :(得分:32)

The answer by Robert Longson很棒,但指向a document that is marked的链接为:

  

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

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

  

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

来源:W3C HTML5 Reference Editor's Draft

  

开始代码必须采用以下格式:

     

...

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

来源:HTML Living Standard from WHATWGHTML: The Living Standard - A technical specification for Web developers

  

内联SVG和MathML支持

     

...

     

语法 <dependency> <groupId>org.springframework.webflow</groupId> <artifactId>spring-webflow</artifactId> <version>2.3.1.RELEASE</version> </dependency> 打开并立即关闭foo元素(如果它是MathML或SVG元素)(即不是HTML元素)。

来源:HTML5 Parser at Mozilla Developer Network

结论:Robert Longson在his answer中写的内容仍然有效。 IE11开发人员工具中的此警告是错误的。在HTML5中使用自关闭语法是有效的(但仅适用于 void elements ,例如<foo/>;或外来元素,它们来自MathML和SVG )。

答案 1 :(得分:21)

您正在使用的任何验证工作都不正确。

SVG and MathML tags are self closing within HTML if they end with />。即您可以将路径写为<path></path><path/>,但不能将其写为<path>