为什么要在HTML文件上放置XHTML doctype声明?那是做什么的?

我想知道我遇到的网页数量是HTML文件,但是它带有XHTML DOCTYPE声明.
为什么人们这样做?他们希望实现什么目标?为什么不为实际的XHTML文件保留XHTML doctype声明?

或者我错过了什么?

编辑:对于“实际的XHTML文件”是什么有一些混淆;为了证明差异不是由DOCTYPE声明引起的,比较this filethis one.第一个是HTML,第二个是XHTML,虽然内容相同;只有文件类型不同.两者都在兼容的浏览器中显示良好,但第一个用HTML解析器解析,第二个用XML解析器解析.

解决方法

Why put an XHTML doctype declaration on HTML files? What does that do?

所有这一切都是告诉标记验证者他们即将验证XHTML文档,而不是常规的,基于SGML的HTML文档.它描述了内容,或者更具体地说是后面的标记,但没有别的.

Why are people doing this? What do they hope to achieve? Why not reserve the XHTML doctype declaration for actual XHTML files?

Or am I missing something?

有点.实际发生的事情是,人们并不知道只是在HTML文档之上放置XHTML doctype声明并不会自动将其转换为XHTML文档,尽管这是每个人都希望的.

你看,大多数Web服务器和/或Web应用程序都没有配置为正确地将XHTML文档序列化为application / xhtml xml,而是选择将Web页面作为text / html提供服务. (对于服务器,它通常是因为.html文件扩展名比其他任何东西更重要,真的.)这导致浏览器决定他们收到一个普通的HTML文档,所以标签汤解析废话我们都知道和喜欢不可避免地随之而来.

请注意,即使您的XHTML文档上有这样的元标记也没关系:

<Meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />

浏览器将忽略它,并且只查看与XHTML文档一起发送的实际HTTP Content-Type标头.

更糟糕的是,Internet Explorer作为XHTML鼎盛时期过去几年中最常用的浏览器,在版本9最终发布之前从未正确支持application / xhtml xml MIME类型:而不是解析标记,构建DOM和呈现页面,它所要做的就是要求下载文件.这不是一个非常有用的XHTML页面

那么,猜猜在HTML5变得酷酷之前我们都必须忍受什么?

这与IE6在doctype声明之前使用XML声明的页面上的quirky一样,也是导致XHTML崩溃的最大因素之一(与XHTML 1.1一起从未得到广泛使用,XHTML 2.0被取消而支持HTML5 ).

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在&#39;&#39;,则表示换行,用&#39;&#39;切割。
代码实现 option = { backgroundColor: &amp;#39;#080b30&amp;#39;, tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...