W3C 验证器( Wikipedia ) 不喜欢 非空 元素上的自闭合标签(那些以“ />
”结尾的标签)。 ( 空元素 是那些可能永远不包含任何内容的元素。)它们在 HTML5 中仍然有效吗?
接受 的 void 元素的一些示例:
<br />
<img src="" />
<input type="text" name="username" />
被拒绝 的非空元素的一些例子:
<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />
笔记:
W3C 验证器实际上接受 void self-closing 标签:作者最初遇到问题是因为一个简单的错字( \>
而不是 />
);然而,一般来说,自关闭标签在 HTML5 中并不是 100% 有效,并且答案详细说明了跨各种 HTML 风格的自关闭标签的问题。
原文由 cdeszaq 发布,翻译遵循 CC BY-SA 4.0 许可协议
(Theoretically) in HTML 4 ,
<foo /
(yes, with no>
at all) means<foo>
(which leads to<br />
meaning<br>>
(即<br>>
)和<title/hello/
意思<title>hello</title>
)。我使用术语“理论上”是因为这是一个 SGML 规则,浏览器在支持方面做得很差。支持太少(我只看到它在 emacs-w3m 中工作)以至于 规范建议作者避免使用语法.在 XHTML 中,
<foo />
表示<foo></foo>
。这是适用于所有 XML 文档的 XML 规则。也就是说,XHTML 通常用作text/html
浏览器使用与用作application/xhtml+xml
的文档不同的解析器来处理它(至少在历史上)。 W3C 提供了 XHTML 遵循的 兼容性指南text/html
。 (本质上:仅当元素定义为 EMPTY 时才使用自闭合标记语法(并且结束标记在 HTML 规范中被禁止))。在 HTML5 中,
<foo />
的含义 取决于元素的类型: