ChatGPT解决这个技术问题 Extra ChatGPT

XHTML 中所有有效的自闭合元素(由主要浏览器实现)是什么?

XHTML(由主流浏览器实现)中所有有效的自闭合元素(例如
)是什么?

我知道 XHTML 在技术上允许任何元素自关闭,但我正在寻找所有主要浏览器支持的那些元素的列表。请参阅 http://dusan.fora.si/blog/self-closing-tags 以了解由

等自闭合元素引起的一些问题的示例。

这难道不是 XHTML 的默认用途之一吗?我认为 XHTML 的优点之一是您可以使用 XML 生成器来生成 HTML。为什么任何 XML 生成器都知道哪些标签可以自动关闭?太奇怪了。
之所以接受“蹩脚”、“不正确”的答案,是因为它回答了假面显然在问的问题。他想知道在将 XHTML 作为 text/html 提供时哪些元素可以自我关闭,而不会在浏览器中引起渲染问题。很多页面都是用 XHTML 编写的,并作为 text/html 提供,即使它在技术上是不正确的。通过这种澄清可以改进问题,但是在这种情况下回答不同的问题(当您作为 application/xml 时会发生什么,或者 text/html 中的单数标签是否应该有一个结束 /)并没有帮助。

G
Glorfindel

每个支持 XHTML 的浏览器(Firefox、Opera、Safari、IE9)都支持 每个元素 的自关闭语法。

<div/><script/><br></br> 都应该可以正常工作。如果没有,那么您的 HTML 中添加了不恰当的 XHTML DOCTYPE。

DOCTYPE 不会改变文档的解释方式。 Only MIME type does

W3C decision about ignoring DOCTYPE

HTML WG 讨论了这个问题:其目的是允许旧的(仅 HTML)浏览器按照指南接受 XHTML 1.0 文档,并将它们作为 text/html 提供。因此,作为 text/html 的文档应该被视为 HTML 而不是 XHTML。

这是一个非常常见的陷阱,因为 W3C Validator 在很大程度上忽略了该规则,但浏览器却虔诚地遵循它。阅读 WebKit 博客中的 Understanding HTML, XML and XHTML

事实上,互联网上绝大多数所谓的 XHTML 文档都是以 text/html 格式提供的。这意味着它们根本不是 XHTML,而是实际上在 HTML 解析器的错误处理中得到的无效 HTML。所有那些“有效的 XHTML 1.0!”网络上的链接实际上是在说“无效的 HTML 4.01!”。

要使用 XHTML 的 DOCTYPE 测试您是否有真正的 XHTML 或无效的 HTML,请将其放入您的文档中:

<span style="color:green"><span style="color:red"/> 
 If it's red, it's HTML. Green is XHTML.
</span>

它验证并在真正的 XHTML 中完美运行(参见:12)。如果您不相信自己的眼睛(或不知道如何设置 MIME 类型),请通过 XHTML proxy 打开您的页面。

另一种检查方法是在 Firefox 中查看源代码。当斜杠无效时,它会以红色突出显示斜杠。

在 HTML5/XHTML5 中,这并没有改变,而且区别更加明显,因为您甚至没有额外的 DOCTYPEContent-Type 是国王。

作为记录,XHTML 规范允许任何元素通过将 XHTML 设为 XML application 来自动关闭:[强调我的]

空元素标签可用于任何没有内容的元素,无论它是否使用关键字 EMPTY 声明。

它还在 XHTML spec 中明确显示:

空元素必须有一个结束标记或开始标记必须以 /> 结尾。例如,



不正确 afaik,因为使用 <script><div> 的自动关闭版本会导致不同的呈现/解释。
@ZeissS text/html 中。在真正的 XHTML 中,作为 application/xhtml+xml 发送它工作得很好。请在投票之前阅读我链接到的文章(或 XHTML 规范附录 C)。
@pornel 你能保证自动关闭