XHTML(由主流浏览器实现)中所有有效的自闭合元素(例如)是什么?
我知道 XHTML 在技术上允许任何元素自关闭,但我正在寻找所有主要浏览器支持的那些元素的列表。见http://dusan.fora.si/blog/self- closing-tags以了解由
每个支持 XHTML 的浏览器(Firefox、Opera、Safari、IE9 )都支持 每个元素 的自关闭语法。
<div/>, <script/>,<br></br>一切都应该正常工作。如果没有,那么您的 HTML 中添加了不恰当的 XHTML DOCTYPE。
<div/>
<script/>
<br></br>
DOCTYPE 不会改变文档的解释方式。 只有 MIME 类型可以。
W3C 关于忽略 DOCTYPE 的决定:
HTML WG 讨论了这个问题:其目的是允许旧的(仅 HTML)浏览器按照指南接受 XHTML 1.0 文档,并将它们作为 text/html 提供。因此,作为 text/html 的文档应该被视为 HTML 而不是 XHTML。
这是一个非常常见的陷阱,因为 W3C Validator 在很大程度上忽略了该规则,但浏览器却虔诚地遵循它。从 WebKit 博客中阅读 理解 HTML、XML 和 XHTML :
事实上,互联网上绝大多数所谓的 XHTML 文档都是以text/html. 这意味着它们根本不是 XHTML,而是实际上是无效的 HTML,它在 HTML 解析器的错误处理上得到了解决。网络上所有那些“有效的 XHTML 1.0!”链接实际上是在说“无效的 HTML 4.01!”。
text/html
要使用 XHTML 的 DOCTYPE 测试您是否有真正的 XHTML 或无效的 HTML,请将其放入您的文档中:
<span style="color:green"><span style="color:red"/> If it's red, it's HTML. Green is XHTML. </span>
它验证并在真正的 XHTML 中完美运行(参见:1 vs 2)。如果您不相信自己的眼睛(或不知道如何设置 MIME 类型),请通过XHTML 代理打开您的页面。
另一种检查方法是在 Firefox 中查看源代码。当斜杠无效时,它会以红色突出显示斜杠。
在 HTML5/XHTML5 中,这并没有改变,而且区别更加清晰,因为你甚至没有额外DOCTYPE的 . Content-Type是国王。
DOCTYPE
Content-Type
作为记录,XHTML 规范允许任何元素通过使 XHTML 成为XML 应用程序来自动关闭:[强调我的]
空元素标签可用于 任何没有内容的元素 ,无论它是否使用关键字 EMPTY 声明。
它也在XHTML 规范中明确显示:
空元素必须 有 一个结束标签或开始标签必须以/>. 例如,<br/>或<hr></hr>
/>
<br/>
<hr></hr>