XHTML中的所有有效自闭元素(例如
)是什么(由主要浏览器实现)?
我知道XHTML在技术上允许任何元素自我关闭,但我正在寻找所有主要浏览器支持的那些元素的列表.有关由自关闭元素(如
)引起的某些问题的示例,请参见http://dusan.fora.si/blog/self-closing-tags.每个支持XHTML的浏览器(Firefox,Opera,Safari,IE9)都支持每个元素的自动关闭语法.
,
,
都应该只是罚款.如果他们不这样做,那么你的HTML会添加不恰当的XHTML DOCTYPE.
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!".
要使用XHTML的DOCTYPE测试您是否拥有真正的XHTML或无效HTML,请将其放入您的文档中:
If it's red, it's HTML. Green is XHTML.
它验证,并且在真正的XHTML中它完美地工作(参见:1 vs 2).如果您无法相信自己的眼睛(或者不知道如何设置MIME类型),请通过XHTML代理打开您的页面.
另一种检查方法是在Firefox中查看源代码.当它们无效时,它会突出显示红色的斜线.
在HTML5/XHTML5中,这没有改变,并且区别更加清晰,因为你甚至没有额外的DOCTYPE
.Content-Type
是国王.
为了记录,XHTML规范允许任何元素通过使XHTML成为XML应用程序来自动关闭:[强调我的]
空元素标签可以用于任何没有内容的元素,无论是否使用关键字EMPTY声明它.
它也在XHTML规范中明确显示:
空元素必须要么有结束标签或者开始标签必须结束
/>
.例如,或