html - DOCTYPE 的意义何在?

标签 html doctype

我知道不同的文档类型本质上是关于 html 的合规性的,但是你指定的文档类型有什么区别呢?浏览器是否会根据文档类型以不同方式处理相同的代码? 谢谢

更新 - 如果没有指定文档类型,大多数答案都提到可以关闭怪癖模式。但是 xhtml 和 html 4.01 之间有什么不同呢?

最佳答案

最重要的是有没有文档类型。如果不这样做,浏览器将以“怪癖”模式而不是标准模式工作,并且许多事情会略有不同。如果您有一个——任何一个——通常会在浏览器中激活更多符合标准的行为。

参见 this article有关文档类型在各种不同浏览器上的作用以及模式(怪癖、标准、几乎标准等)的详细信息,不同的浏览器都有。引用相关部分:

Modes for text/html Content

The choice of the mode for text/html content depends on doctype sniffing (discussed later in this document). In IE8 and IE9, the mode also depends on other factors. However, by default even in IE8 and IE9, the mode depends on the doctype for non-intranet sites that are not on a blacklist supplied by Microsoft.

It cannot be stressed enough that the exact behavior of the modes varies from browser to browser even though discussion in this document has been unified.

Quirks Mode

In the Quirks mode the browsers violate contemporary Web format specifications in order to avoid “breaking” pages authored according to practices that were prevalent in the late 1990s. Different browsers implement different quirks. In Internet Explorer 6, 7, 8 and 9, the Quirks mode is effectively frozen IE 5.5. In other browsers, the Quirks mode is a handful of deviations from the Almost Standards mode.

If you are authoring new pages now, you are supposed to comply with the relevant specifications (CSS 2.1 in particular) and use the Standards mode.

Standards Mode

In the Standards mode the browsers try to give conforming documents the specification-wise correct treatment to the extent implemented in a particular browser.

Since different browsers are at different stages of compliance, the Standards mode isn’t a single target, either.

HTML 5 calls this mode the “no quirks mode”.

Almost Standards Mode

Firefox, Safari, Chrome, Opera (since 7.5), IE8 and IE9 also have a mode known as “the Almost Standards mode”, which implements the vertical sizing of table cells traditionally and not rigorously according to the CSS2 specification. Mac IE 5, Windows IE 6 and 7, Opera prior to 7.5 and Konqueror do not need an Almost Standards mode, because they don’t implement the vertical sizing of table cells rigorously according to the CSS2 specification in their respective Standards modes anyway. In fact, their Standards modes are closer to the Almost Standards mode than to the Standards mode of newer browsers.

HTML 5 calls this mode the “limited quirks mode”.

IE7 Mode

IE8 and IE9 have a mode that is mostly a frozen copy of the mode that was the Standards mode in IE7. Other browsers do not have a mode like this, and this mode is not specified by HTML5.

IE8 Standards Mode

IE9 has a mode that is mostly a frozen copy of the mode that was the Standards mode in IE8. Other browsers do not have a mode like this, and this mode is not specified by HTML5.

IE8 Almost Standards Mode

IE9 has a mode that is mostly a frozen copy of the mode that was the Almost Standards mode in IE8. Other browsers do not have a mode like this, and this mode is not specified by HTML5.

...但请参阅文章以获取完整讨论。

关于html - DOCTYPE 的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6213242/

相关文章:

html - <a> 内联不起作用

javascript - Enter 键无法激活按钮

CSS 错误或 IE 兼容性问题?

c# - 如果缺少 DTD,XML DocumentType 方法 CreateDocumentType 会崩溃 .NET C#

html - 我怎样才能摆脱博客上我博客上的多余空间

html - input ['file' ] accept ="image/*"打开对话框用 Chrome 这么慢

javascript - 如何在ajax代码中访问javascript变量值

java - 如何在 Java 中使用 StAX Parser 在 XML 中声明 DOCTYPE 和 ENTITY

php - 使用 DomDocument 将实体添加到 DOCTYPE

html - iframe 100% 高度导致垂直滚动条