繁体   English   中英

为什么我需要doctype? (它做了什么)[重复]

[英]Why do I need a doctype? (What does it do) [duplicate]

可能重复:
HTML:!DOCTYPE的功能是什么

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

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

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

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

所有浏览器都需要doctype。 如果没有DOCTYPE ,则强制浏览器以Quirks模式呈现。

但是, DOCTYPE仅在确定方言和解析时被浏览器部分使用,即使这是目的。 这就是HTML5简化DOCTYPE原因

<!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>执行此操作。

来源: 与HTML4的HTML5差异:DOCTYPE

Doctype做了两件事。

  1. 它标识您正在使用的HTML方言。
  2. 它控制浏览器是使用“标准”还是“怪癖”模式来呈现文档。

如果没有doctype,或者存在无法识别的文档类型,则它使用“怪癖”模式并尽可能地解释文档。 如果有一个doctype,并且它识别它,那么它遵循标准。 渲染的结果可能会有所不同,具体取决于它如何解释文档。

为什么?

为什么要指定doctype? 因为它定义了文档实际使用的(X)HTML版本,这是处理文档的某些工具所需的关键信息。

例如,指定文档的doctype允许您使用诸如标记验证器之类的工具来检查(X)HTML的语法。 如果这些工具不知道您使用的是哪种文档,则无法使用这些工具。

但最重要的是,对于大多数浏览器系列而言,doctype声明会使大量猜测变得不必要,从而触发“标准”渲染模式。

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

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

IE将要做的是将文档放入它所谓的“怪癖模式”中,它基本上忽略了CSS应该(通过现代定义)行为的整个规则堆。 以下是该问题的一个很好的总结 它可以追溯到非标准化CSS支持的旧时代

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

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

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

来自W3Schools .com:

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

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

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

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

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

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM