【问题标题】:Why do I need a doctype? (What does it do) [duplicate]为什么我需要一个文档类型? (它有什么作用)[重复]
【发布时间】:2011-05-21 03:23:57
【问题描述】:

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

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

您需要在页面中添加一个文档类型。这应该可以为您解决问题。

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

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

【问题讨论】:

    标签: html doctype


    【解决方案1】:

    所有浏览器都需要文档类型。如果没有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> 执行此操作。

    来源: HTML5 differences from HTML4: DOCTYPE

    【讨论】:

    • 实际上,它确实确定文档是呈现为严格模式、几乎严格模式还是怪癖模式,所以它确实有作用.
    • 查看此表:hsivonen.iki.fi/doctype 它对 (X)HTML 的早期版本有明显的影响
    【解决方案2】:

    Doctype 做了两件事。

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

    如果没有 doctype,或者有一个无法识别的,那么它会使用“quirks”模式并尽可能地解释文档。如果有一个文档类型,并且它可以识别它,那么它就会遵循标准。呈现的结果可能会有所不同,具体取决于它对文档的解释方式。

    【讨论】:

      【解决方案3】:

      为什么?

      为什么要指定文档类型?因为它 定义您的 (X)HTML 版本 文档实际上正在使用,而这 是一条关键信息 一些工具需要处理 文件。

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

      但最重要的是 对于大多数浏览器系列,一个 doctype 声明会做很多 猜测是不必要的,因此会 触发“标准”渲染模式。

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

      【讨论】:

      • 我不认为最后一次编辑于 2009 年且最初创建于 2002 年的页面在这一点上是可靠的参考。
      • @KevinPeno 我想你不知道 W3 是谁。
      • @Raynos,你在说什么?哈哈?我的观点是它比 doctype 上的 HTML5 更改早了 2 年。因此,它并不真正可靠,因为它没有参考讨论。他们在该网站上有很多已经过时的页面。
      • @KevinPeno 您希望改变 DOCTYPE 的需求吗?
      • @Raynos,DOCTYPE 仅用于向后兼容。所以是的,我是说当规范被取代时。
      【解决方案4】:

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

      IE 所做的就是将文档置于它所谓的“怪癖模式”中,这种模式基本上忽略了 CSS 应该如何(按照现代定义)表现的一大堆规则。这是good summary of the issue。它让人想起了非标准化 CSS 支持的糟糕时光

      【讨论】:

      • 你所说的“解释”是什么意思??是指尺寸、颜色……还是元素、标签……等等??
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        在 W3Schools 中,doctype 是“向网络浏览器发出的关于页面所用标记语言版本的说明”。 (http://www.w3schools.com/tags/tag_doctype.asp)

        如果您不包含文档类型,浏览器可能会认为您使用的语言与您实际使用的语言不同,从而导致其呈现不正确。

        【讨论】:

          【解决方案7】:

          来自W3Schools.com:

          文档类型声明不是 HTML 标签;这是对网络的指示 关于什么版本的浏览器 页面编写的标记语言 在。

          有几种不同的文档类型,更改它们可以极大地改变页面的呈现方式。

          【讨论】:

            【解决方案8】:

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

            文档类型声明不是 HTML 标签;这是对网络的指示 关于什么版本的浏览器 页面编写的标记语言 在。

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

            Reference

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-12-28
              • 1970-01-01
              • 2013-07-16
              • 1970-01-01
              • 1970-01-01
              • 2019-08-22
              • 2013-07-22
              • 2010-12-08
              相关资源
              最近更新 更多