为什么我需要doctype? (它有什么作用)

时间:2011-05-20 18:55:18

标签: html doctype

  

可能重复:
  HTML: What is the functionality of !DOCTYPE

我最近在这里问了一个问题,解决方案很简单:

  

您需要向页面添加doctype。这应该为您解决问题。

现在,我的页面在没有doctype(IE除外)的每个浏览器中都能正常工作。 IE是否需要doctype(这是IE唯一的东西)并且其他浏览器只是假设 OR 或者它正在做我没有看到的事情。

它的功能是什么?它是如何工作的?

8 个答案:

答案 0 :(得分:52)

所有浏览器都需要doctype。如果没有DOCTYPE,则强制浏览器在Quirks Mode中呈现。

但是,DOCTYPE仅被determining dialect and parsing中的浏览器部分使用,即使这是目的。 This is why HTML5 has reduced the DOCTYPE to simply

<!DOCTYPE html>

  

<强> 2.2。 DOCTYPE

     

HTML5的HTML语法要求指定DOCTYPE以确保浏览器以标准模式呈现页面。 DOCTYPE没有其他用途,因此对XML是可选的。具有XML媒体类型的文档始终以标准模式处理。 [DOCTYPE]

     

DOCTYPE声明为<!DOCTYPE html>,在HTML语法中不区分大小写。早期版本的HTML中的DOCTYPE较长,因为HTML语言是基于SGML的,因此需要引用DTD。使用HTML5不再是这种情况,仅需要DOCTYPE为使用HTML语法编写的文档启用标准模式。浏览器已为<!DOCTYPE html>执行此操作。

来源: HTML5 differences from HTML4: DOCTYPE

答案 1 :(得分:10)

Doctype做了两件事。

  1. 它标识您正在使用的HTML方言。
  2. 它控制浏览器是使用“标准”还是“怪癖”模式来呈现文档。
  3. 如果没有doctype,或者有一个无法识别的文档类型,那么它会使用“quirks”模式并尽可能地解释文档。如果有一个doctype,并且它识别它,那么它遵循标准。渲染的结果可能会有所不同,具体取决于它如何解释文档。

答案 2 :(得分:5)

  

为什么?

     

为什么要指定doctype?因为它   定义您的(X)HTML的哪个版本   文件实际上正在使用,而且这个   是一个重要的信息   某些工具需要处理   文档。

     

例如,指定doctype   您的文档允许您使用工具   例如要检查的标记验证器   你的(X)HTML的语法。这样的工具   如果他们不这样做将无法工作   知道你是什么样的文件   使用

     

但最重要的是   与大多数浏览器家庭,a   doctype声明会产生很多   猜测不必要,并因此   触发“标准”渲染模式。

来源:http://www.w3.org/QA/Tips/Doctype

答案 3 :(得分:2)

您应该有任何浏览器的DOCTYPE。它告诉浏览器如何解释html和css。这就是为什么html4和html5有不同的定义(和xhtml一样)。对验证都非常重要。

IE将要做的是将文档放入它所谓的“怪癖模式”,这基本上忽略了CSS应该(通过现代定义)行为的整个规则堆。这是一个good summary of the issue。它可以追溯到非标准化CSS支持的糟糕时期

答案 4 :(得分:2)

浏览器至少需要在所谓的标准模式下呈现。请参阅John Resig关于html 5 doctype的文章:http://ejohn.org/blog/html5-doctype/。现在,如果您希望您的浏览器不使用标准并像1990年一样渲染并且不添加任何东西,您将看到浮动和其他现在标准项目无法正常工作。如果您希望根据特定标准对页面进行渲染/验证,那么您可能希望在doc类型中添加更多内容,但这不是必需的。

答案 5 :(得分:1)

从W3Schools,doctype是“向Web浏览器发出关于页面编写的标记语言版本的指令”。 (http://www.w3schools.com/tags/tag_doctype.asp)

如果您不包含doctype,浏览器可能会假设您使用的语言与实际语言不同,导致其呈现错误。

答案 6 :(得分:1)

来自W3Schools。com:

  

doctype声明不是HTML   标签;这是对网络的指导   关于什么版本的浏览器   标记语言页面是写的   英寸

有一些不同的doctypes,更改它们可以彻底改变页面呈现的方式。

答案 7 :(得分:0)

  

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

     

doctype声明不是HTML   标签;这是对网络的指导   关于什么版本的浏览器   标记语言页面是写的   英寸

     

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

Reference