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

Mr *_*ter 8 html xhtml doctype

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

或者我错过了什么?

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

Bol*_*ock 11

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

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

为什么人们这样做?他们希望实现什么目标?为什么不为实际的XHTML文件保留XHTML doctype声明?

或者我错过了什么?

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

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

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

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


Rob*_*Rob 5

大多数人使用XHTML文档类型是因为他们在某个旧书中阅读它或在论坛上阅读它,但是其他人正在使用它而不是他们所知道的技术原因.几乎没有人通过将其作为application/xml + xhtml提供它来正确使用它.以text/html的形式提供XHTML页面意味着"标签汤"或"破碎的html".它不应该被完成,但浏览器通常可以很好地处理它.

你对这个问题的看法是正确的.它让我疯狂.