什么是DOCTYPE的重点?

时间:2011-06-02 10:22:32

标签: html doctype

我知道不同的doctypes本质上是关于html的兼容性,但它与你指定的doctype有什么区别?浏览器是否根据文档类型处理相同的代码? 谢谢

更新 - 如果没有指定doctype,大多数答案都会提到quirks模式。但是xhtml和html 4.01会有什么不同?

8 个答案:

答案 0 :(得分:5)

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

有关各种不同浏览器的文档类型以及不同浏览器的怪癖,标准,差不多标准等方式的详细信息,请参阅this article。引用相关部分:

  

text / html内容的模式

     

选择   文本/ html内容的模式   取决于doctype嗅探(讨论   稍后在本文件中)。在IE8和   IE9的模式也取决于其他   因素。但是,默认情况下甚至在   IE8和IE9的模式取决于   非Intranet站点的doctype   不在黑名单中   微软。

     

不能强调   足够的确切的行为   模式因浏览器而异   即使在此讨论   文件已统一。

     

怪癖模式

     

在Quirks模式中   浏览器违反当代网络   格式规范以便   避免“破坏”创作的网页   根据实践   在20世纪90年代末流行。不同   浏览器实现不同的怪癖。   在Internet Explorer 6,7,8和9中,   Quirks模式被有效冻结   IE 5.5。在其他浏览器中,怪癖   模式是一些偏差   几乎标准模式。

     

如果您现在正在创作新页面,   你应该遵守   相关规范(CSS 2.1 in   特别)并使用标准   模式。

     

标准模式

     

在标准模式下   浏览器试图给予符合   记录规范   正确的治疗程度   在特定的浏览器中实现。

     

因为不同的浏览器都在   不同的合规阶段,   标准模式不是单一目标,   任

     

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未指定。

...但请参阅文章进行全面讨论。

答案 1 :(得分:2)

所有这些都与标准有关,是的,浏览器处理代码的方式不同。这意味着,所有浏览器应该平等地显示页面。如果未指定标准,浏览器将按照自己的意愿解释页面。

答案 2 :(得分:2)

声明不是XHTML标记;它是Web浏览器关于页面编写的标记语言版本的说明。

声明是指文档类型定义(DTD)。 DTD指定标记语言的规则,以便浏览器正确呈现内容。

答案 3 :(得分:2)

来自Wikipedia

  

文件类型声明,或   DOCTYPE,是一条指令   关联特定的SGML或XML   文档(例如,网页)   文档类型定义(DTD)(for   例如,a的正式定义   特定版本的HTML)。在里面   它的序列化形式   表现为一串短标记   符合特定语法。

     

现代网络中的HTML布局引擎   浏览器执行DOCTYPE“嗅探”或   “切换”,其中DOCTYPE在   文档作为text / html   确定布局模式,例如   “怪癖模式”或“标准模式”。该    HTML5的text / html序列化,   这不是基于SGML的,使用   DOCTYPE仅用于模式选择。以来   Web浏览器是用。实现的   相反,特殊用途的HTML解析器   比通用的基于DTD的   解析器,他们不使用DTD和意志   即使URL是,也永远不会访问它们   提供。 DOCTYPE保留在   HTML5作为“大多无用,但是   要求“标题仅触发   常见浏览器中的“标准模式”

我决定引用这段文字,因为它比我更好地回答了你的问题。重要的是缺少DOCTYPE将在某些浏览器中触发“怪癖模式”。

答案 4 :(得分:2)

DOCTYPE声明必须符合SGML,语言HTML是。

的实例

某些浏览器使用DOCTYPE声明trigger different rendering modes

答案 5 :(得分:2)

  

浏览器模式

回到过去,浏览器根据自己的规则实施了CSS 多年来,浏览器现在都采用了W3C标准。

为了确保网站正确呈现各种浏览器,Web开发人员必须根据这些浏览器的意愿实现CSS。因此,大多数网站使用CSS的方式与规范不完全匹配。

因此,当标准合规性变得重要时,浏览器供应商面临着艰难的选择。接近W3C规范是要走的路,但如果他们只是改变CSS实现以完全匹配标准,许多网站将或多或少地破坏。如果突然以正确的方式解释,现有的CSS将开始显示奇怪的副作用。

因此,更接近标准合规性会导致问题。另一方面,不接近标准的遵守会使浏览器大战时代的普遍混乱永久化。

为此,所有浏览器必须开始支持这两种模式。旧设计的怪癖模式和新设计的标准模式。

从这里解释:Quirks mode and strict mode

  

<强> DOCTYPES

选择使用哪种模式需要触发器,此触发器可在“doctype switching”中找到。   根据标准,任何(X)HTML文档都应该有一个doctype,告诉整个世界文档正在使用哪种(X)HTML。

从这里采取:Quirks mode and strict mode

  

添加资源

答案 6 :(得分:1)

在标记之前,doctype声明应该是HTML文档中的第一件事。

它不是HTML标记; 这是向Web浏览器发出的关于该页面所用标记语言版本的说明。

HTML5变得越来越简单:<!DOCTYPE html>

如果您没有正确的doctype,浏览器将不知道使用HTML5。

答案 7 :(得分:0)

因为Doctype是告诉浏览器应该如何处理页面的标志。

例如:

HTML5需要此doctype <!DOCTYPE html> 如果您从页面中删除此内容,则不会激活页面中的任何HTML5功能。

您可以在http://www.w3.org/QA/Tips/Doctype

中阅读更多内容