每个支持 XHTML 的浏览器(Firefox、Opera、Safari、IE9 https://learn.microsoft.com/en-us/archive/blogs/ie/xhtml-in-ie9) 支持自关闭语法每个元素.
<div/>
, <script/>
, <br></br>
一切都应该工作得很好。如果他们不这样做,那么你就有了HTML不恰当地添加了 XHTML DOCTYPE。
DOCTYPE 不会改变文档的解释方式。只有 MIME 类型可以 http://www.webdevout.net/articles/beware-of-xhtml#content_type.
W3C 关于忽略 DOCTYPE 的决定 https://lists.w3.org/Archives/Public/www-html/2000Sep/0024.html:
HTML WG 讨论了这个问题:目的是允许旧的
(仅限 HTML)浏览器按照以下方式接受 XHTML 1.0 文档
指南,并将其作为文本/html 提供。因此,文件充当
text/html 应被视为 HTML 而不是 XHTML。
这是一个非常常见的陷阱,因为 W3C 验证器很大程度上忽略了该规则,但浏览器却严格遵循它。读理解 HTML、XML 和 XHTML https://webkit.org/blog/68/understanding-html-xml-and-xhtml/来自 WebKit 博客:
事实上,互联网上绝大多数所谓的 XHTML 文档都被用作text/html
。这意味着它们根本不是 XHTML,而是实际上无效的 HTML,只是依赖 HTML 解析器的错误处理。所有这些“有效的 XHTML 1.0!”网络上的链接实际上是在说“无效的 HTML 4.01!”。
要测试您是否具有真正的 XHTML 或具有 XHTML 的 DOCTYPE 的无效 HTML,请将其放入您的文档中:
<span style="color:green"><span style="color:red"/>
If it's red, it's HTML. Green is XHTML.
</span>
它经过验证,并且在真正的 XHTML 中它可以完美地工作(请参阅:1 https://kornel.ski/1 vs 2 https://kornel.ski/2)。如果您不敢相信自己的眼睛(或者不知道如何设置 MIME 类型),请通过以下方式打开您的页面XHTML代理 https://schneegans.de/xp/.
另一种检查方法是在 Firefox 中查看源代码。当斜杠无效时,它会以红色突出显示斜杠。
在 HTML5/XHTML5 中,这一点没有改变,而且区别甚至更加清晰,因为你甚至不需要额外的DOCTYPE
. Content-Type
是国王。
根据记录,XHTML 规范允许任何元素通过使 XHTML 成为自闭合元素XML应用 https://www.w3.org/TR/REC-xml/#sec-starttags:[强调我的]
空元素标签可用于任何没有内容的元素,无论是否使用关键字 EMPTY 进行声明。
它也明确地显示在XHTML规范 https://www.w3.org/TR/xhtml1/#h-4.6:
空元素必须either有结束标记或开始标记必须以/>
。例如,<br/>
or <hr></hr>