【发布时间】:2011-05-21 03:23:57
【问题描述】:
我最近在这里问了一个问题,解决方法很简单:
您需要在页面中添加一个文档类型。这应该可以为您解决问题。
现在,我的页面在没有 doctype 的每个浏览器中都能正常工作(IE 除外)。 IE 是否需要一个 doctype(这是 IE 唯一的东西)并且其他浏览器是否只是假设它OR 或者它正在做一些我没有看到的事情。
它的功能是什么,它是如何工作的?
【问题讨论】:
我最近在这里问了一个问题,解决方法很简单:
您需要在页面中添加一个文档类型。这应该可以为您解决问题。
现在,我的页面在没有 doctype 的每个浏览器中都能正常工作(IE 除外)。 IE 是否需要一个 doctype(这是 IE 唯一的东西)并且其他浏览器是否只是假设它OR 或者它正在做一些我没有看到的事情。
它的功能是什么,它是如何工作的?
【问题讨论】:
所有浏览器都需要文档类型。如果没有DOCTYPE,您将强制浏览器在Quirks Mode 中呈现。
然而,DOCTYPE 仅被determining dialect and parsing 中的浏览器部分使用,尽管这是目的。 This is why HTML5 has reduced the DOCTYPE to simply:
<!DOCTYPE html>
2.2.文档类型
HTML5 的 HTML 语法要求指定 DOCTYPE 以确保浏览器以标准模式呈现页面。 DOCTYPE 没有其他用途,因此对于 XML 是可选的。具有 XML 媒体类型的文档始终以标准模式处理。 [文档类型]
DOCTYPE 声明为
<!DOCTYPE html>,在 HTML 语法中不区分大小写。来自早期 HTML 版本的 DOCTYPE 更长,因为 HTML 语言是基于 SGML 的,因此需要对 DTD 的引用。在 HTML5 中,情况不再如此,只需要 DOCTYPE 来为使用 HTML 语法编写的文档启用标准模式。浏览器已经为<!DOCTYPE html>执行此操作。
【讨论】:
Doctype 做了两件事。
如果没有 doctype,或者有一个无法识别的,那么它会使用“quirks”模式并尽可能地解释文档。如果有一个文档类型,并且它可以识别它,那么它就会遵循标准。呈现的结果可能会有所不同,具体取决于它对文档的解释方式。
【讨论】:
为什么?
为什么要指定文档类型?因为它 定义您的 (X)HTML 版本 文档实际上正在使用,而这 是一条关键信息 一些工具需要处理 文件。
例如,指定文档类型 您的文档允许您使用工具 例如要检查的标记验证器 (X)HTML 的语法。此类工具 如果他们不这样做,将无法工作 知道你是什么类型的文件 使用。
但最重要的是 对于大多数浏览器系列,一个 doctype 声明会做很多 猜测是不必要的,因此会 触发“标准”渲染模式。
【讨论】:
DOCTYPE 仅用于向后兼容。所以是的,我是说当规范被取代时。
您应该有适用于任何浏览器的 DOCTYPE。它告诉浏览器如何解释 html 和 css。这就是为什么 html4 和 html5 有不同的定义(和 xhtml 一样)。所有这些对于验证都非常重要。
IE 所做的就是将文档置于它所谓的“怪癖模式”中,这种模式基本上忽略了 CSS 应该如何(按照现代定义)表现的一大堆规则。这是good summary of the issue。它让人想起了非标准化 CSS 支持的糟糕时光
【讨论】:
浏览器至少需要以所谓的标准模式进行渲染。请参阅 John Resig 关于 html 5 文档类型的文章:http://ejohn.org/blog/html5-doctype/。现在,如果您希望您的浏览器不使用标准并像 1990 年那样进行渲染,请继续不要添加任何内容,您将看到浮动和其他现在的标准项目无法正常工作。如果您想让您的页面根据特定标准进行渲染/验证,那么您可能需要向 doc 类型添加更多内容,但这不是必需的。
【讨论】:
在 W3Schools 中,doctype 是“向网络浏览器发出的关于页面所用标记语言版本的说明”。 (http://www.w3schools.com/tags/tag_doctype.asp)
如果您不包含文档类型,浏览器可能会认为您使用的语言与您实际使用的语言不同,从而导致其呈现不正确。
【讨论】:
【讨论】:
文档类型声明应该是 HTML 文档中的第一件事, 在标签之前。
文档类型声明不是 HTML 标签;这是对网络的指示 关于什么版本的浏览器 页面编写的标记语言 在。
doctype 声明引用了一个 文档类型定义 (DTD)。这 DTD 指定标记的规则 语言,以便浏览器呈现 内容正确。
【讨论】: