我正在验证我的代码,并在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>
关闭路径的正确方法是什么?
答案 0 :(得分:32)
The answer by Robert Longson很棒,但指向a document that is marked的链接为:
本文档已停产,仅供历史使用。
我想找到一些关于这种行为的最新规范,这是我发现的:
自闭标记是一种特殊形式的开始标记,在关闭右尖括号之前有一个斜杠。这些表示该元素将立即关闭,并且没有内容。在允许和使用此语法的情况下,必须省略结束标记。在HTML中,此语法的使用仅限于 void elements 和 foreign elements 。如果它用于其他元素,则将其视为开始标记。
来源:W3C HTML5 Reference Editor's Draft
开始代码必须采用以下格式:
...
- 然后,如果元素是 void elements 之一,或者该元素是外来元素,那么可能只有一个U + 002F SOLIDUS字符( /)。此字符对 void elements 没有影响,但在外来元素上,它将开始标记标记为自动关闭。
醇>
来源:HTML Living Standard from WHATWG 和HTML: 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>