为什么要在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 ).

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些