- 什么是 DOCTYPE,为什么要使用它?
- 可以使用哪些不同的 DOCTYPE?
- 标准模式和怪异模式有什么区别,以及使用不同的 DOCTYPE 可能会遇到的一些怪异行为是什么?
最后,我应该使用什么正确的 DOCTYPE?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
它可以在所有现代浏览器中使用,包括IE6。 - Walter RumsbyDOCTYPE 声明告诉使用者代理(如网页浏览器、网络爬虫、验证工具)文档类型。使用它可确保消费者正确地解析 HTML,就像您想要的那样。
HTML、XHTML 和 Framesets 中有几个不同的 DOCTYPE,并且每种都有两种模式:Strict 和 Transitional。 Strict 表示您的标记完全符合定义的标准。请参阅W3C DTDs页面以获取更多详细信息。
Quirksmode 基本上是来自浏览器战争时期的布局方法,当时标准远不如今天这么受尊重和定义。通常,一个有效的标准模式页面将在各种浏览器中更一致地布局,但可能缺乏您需要的某些功能。其中一个功能是锚标记的目标属性。 Quirksmode 网站是了解这些差异的好资源。
最后一个想法是,新的 HTML5 标准建议使用非常简单的 DOCTYPE:
<!DOCTYPE html>
使用此 DOCTYPE 是一种向前兼容的方式,指定您的页面为标准模式,并且是 HTML。这是 Google 使用的方法,并且相当容易记忆。我建议除非您打算使用 XHTML,否则使用此 DOCTYPE。
没有权威的DOCTYPE列表。每个HTML规范或草案都定义了自己的DOCTYPE或DOCTYPEs。浏览器在选择模式时识别的DOCTYPE集合因浏览器而异。实际上,除了HTML5中定义的<DOCTYPE html>
之外,没有理由使用其他DOCTYPE,尽管HTML5还列出了一些“遗留的DOCTYPE”。如果您想要标准模式(推荐新页面使用),可以使用该DOCTYPE,如果您想要怪异模式(对于旧页面可能需要),则不使用DOCTYPE。
<!DOCTYPE html>
,而对于旧页面应保留任何DOCTYPE(如果有)。<DOCTYPE html>
之外,没有理由使用其他的DOCTYPE”。 - Armfoot<table>
标签的样式 - 它接受哪些属性,以及每个属性接受哪些值/值类型。可以把它看作是当前网页的词汇表。
Wikipedia 上有关于常见使用的各种文档类型定义的信息页面。请注意 - 没有任何阻止您创建自己的文档类型定义。但是,浏览器可能无法知道如何呈现您的文档。文档类型声明告诉浏览器页面所使用的语言,可以是HTML或XHTML。例如,
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML4 strict
的方式渲染页面。旧版浏览器会错误地渲染页面,因此新版浏览器在发现旧的文档类型时会模拟旧版浏览器的错误。td img { vertical-align:bottom; }
)。另一方面,IE 则回到了 IE5.5 中的渲染引擎。这意味着你将无法使用自 2000 年以来实施的任何新功能。<doctype html>
,因为它最容易记住。