更新 - 大多数答案都提到如果没有指定文档类型,则可能会开启怪异模式。但xhtml和html 4.01之间有什么不同呢?
文本/HTML内容的模式
选择文本/HTML内容的模式取决于DOCTYPE嗅探(稍后在本文档中讨论)。在IE8和IE9中,模式还取决于其他因素。但是,默认情况下,即使在IE8和IE9中,对于非Intranet站点,模式也取决于未由Microsoft提供的黑名单的DOCTYPE。
无论如何,必须强调的是,即使在本文档中进行了统一讨论,模式的确切行为因浏览器而异。
怪异模式
在怪异模式下,浏览器违反了当代Web格式规范,以避免“破坏”按照20世纪90年代流行的惯例编写的页面。不同的浏览器实现了不同的怪癖。在Internet Explorer 6、7、8和9中,怪异模式实际上被冻结在IE 5.5中。在其他浏览器中,怪异模式是与几乎标准模式有所偏差。
如果您现在正在编写新页面,则应符合相关规范(尤其是CSS 2.1),并使用标准模式。
标准模式
在标准模式下,浏览器尝试按照特定浏览器中实现的规范正确处理符合规范的文档。
由于不同的浏览器处于不同的合规阶段,因此标准模式也不是一个单一的目标。
HTML 5将此模式称为“无怪异模式”。
几乎标准模式
Firefox、Safari、Chrome、Opera(自7.5以来)、IE8和IE9还具有一种称为“几乎标准模式”的模式,该模式根据CSS2规范传统地而不是严格地实现表单元格的垂直调整大小。Mac IE 5、Windows IE 6和7、Opera 7.5之前和Konqueror不需要几乎标准模式,因为它们在各自的标准模式中没有严格按照CSS2规范实现表单元格的垂直调整大小。事实上,它们的标准模式比新浏览器的标准模式更接近几乎标准模式。
HTML 5将此模式称为“有限怪异模式”。
IE7模式
IE8和IE9具有大多数是IE7标准模式的冻结副本的模式。其他浏览器没有这样的模式,而且HTML5没有指定此模式。
IE8标准模式
IE9具有大多数是IE8标准模式的冻结副本的模式。其他浏览器没有这样的模式,而且HTML5没有指定此模式。
IE8几乎标准模式
IE9具有大多数是IE8几乎标准模式的冻结副本的模式。其他浏览器没有这样的模式,而且HTML5没有指定此模式。
...但请查看完整讨论文章。
来自维基百科:
文档类型声明(DOCTYPE)是一条指令,将一个特定的SGML或XML文档(例如网页)与文档类型定义(DTD)(例如特定版本HTML的正式定义)相关联。在文档序列化形式中,它表现为符合特定语法的短字符串标记。
现代Web浏览器中的HTML布局引擎执行DOCTYPE“嗅探”或“切换”,其中在作为text/html提供的文档中的DOCTYPE确定布局模式,例如“quirks mode”或“standards mode”。不基于SGML的HTML5的text/html序列化仅使用DOCTYPE进行模式选择。由于Web浏览器采用专用的HTML解析器而不是通用的基于DTD的解析器,因此它们不使用DTD,即使提供了URL也永远不会访问它们。在HTML5中保留DOCTYPE只是为了在常见浏览器中触发“standards mode”,但它是“基本无用但必需”的标题。
我决定引用这段文字,因为它比我更好地回答了您的问题 :). 缺少DOCTYPE在某些浏览器中会触发“quirks mode”,这很重要。
这一切都与标准有关,是的,浏览器会以不同的方式处理代码。这意味着所有浏览器应该平等地显示页面。如果没有指定标准,浏览器将按照自己的想法解释页面。
声明不是XHTML标签,而是指示网络浏览器该页面所编写的标记语言版本。
声明指的是文档类型定义(DTD)。DTD规定了标记语言的规则,以便浏览器正确地呈现内容。
在HTML文档中,doctype声明应该是位于<html>标签之前的第一件事情。
<!DOCTYPE>不是一个HTML标签;它是一条指令,告诉浏览器页面所使用的标记语言版本。
随着HTML5的出现,这变得更加简单:<!DOCTYPE html>
如果你没有正确的doctype声明,浏览器就不会知道要使用HTML5。
因为 Doctype 是告诉浏览器如何处理页面的标志。
例如:
HTML5 需要这个 doctype:<!DOCTYPE html>
如果您从页面中删除它,则页面内任何 HTML5 功能都不会被激活。
您可以在 http://www.w3.org/QA/Tips/Doctype 中阅读更多内容。
<!doctype html public "-//W3C//DTD HTML 4.01//EN">
,我将能够使用画布(canvas)、HTML5视频和所有其他HTML5功能,并且它将在任何地方都能正常工作。 - duri