繁体   English   中英

<!doctype html>做什么?

[英]What does <!doctype html> do?

这个标签做什么?

<!doctype html>

我能看到的是,这个标签位于顶部,我的html表现得与其他方式不同。 我怎么知道我是否需要这个标签?

它是规范中定义HTML的组成部分:

8.1.1 DOCTYPE

DOCTYPE是必需的前导码。

遗留原因需要DOCTYPE。 省略时,浏览器倾向于使用与某些规范不兼容的其他渲染模式。 在文档中包含DOCTYPE可确保浏览器尽最大努力遵循相关规范。


编辑添加:

这个安全带做什么?

安全带图像

我能看到的是,在这个安全带打开的情况下,我的车的行为与没有安全带一样。 我怎么知道我是否需要这个安全带?

你不会知道你是否需要它,直到出现问题并且你没有它。

DOCTYPE Declaration is the abbreviation for Document Type Declaration (DTD).

DOCTYPE声明(DTD或文档类型声明)做了两件事:

  1. 当在网页上执行HTML验证测试时,它告诉HTML(超文本标记语言)验证器网页编码应符合哪个(X)HTML标准版本。 当您验证网页时,HTML验证程序会根据适用的标准检查编码,然后报告编码的哪些部分未通过HTML验证(不符合要求)。

  2. 它告诉浏览器如何在符合标准的模式下呈现页面。

如果网页编码不包含DOCTYPE声明(DTD或文档类型声明)或未正确完成:

  1. 您将无法使用HTML(超文本标记语言)验证程序来检查页面编码。 HTML验证需要DOCTYPE声明。

  2. 渲染网页的浏览器将以Quirks模式处理编码。

  3. 样式表可能未按计划实施。

你应该使用哪种DOCTYPE?

如果您是HTML(超文本标记语言)的初学者,那么我建议您使用HTML 4.01 Transitional声明。 在执行HTML验证时,初学者会更加宽容。 如果您知道您的受众群体没有支持CSS(层叠样式表)的浏览器,您也可以使用此声明。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

此DOCTYPE声明仍允许应该在样式表中的元素和表示属性。


如果您想学习编写代码以备将来但尚未准备好使用XHTML,那么您将使用Strict声明。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

使用此声明,所有表示属性都将移动到样式表。

DOCTYPE声明(DTD)的完整列表可在您可以在文档中使用的有效DTD列表中找到

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

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

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

引自这里: http//www.w3schools.com/tags/tag_doctype.asp

:)

Doctype声明会在浏览器中触发标准模式,并且应始终使用。 应始终避免使用怪癖模式。

浏览器大战和2种模式

为了理解DOCTYPE的重要性,让我们从浏览器大战的日子开始深入研究一些历史。 在那些日子里,网页以两种不同的版本编写,以支持Internet ExplorerNetscape Navigator

但随后W3C接管了Web标准的定义。 但遗憾的是,具有新标准的浏览器无法呈现为旧版浏览器构建的网页。 因此,为了支持为旧版浏览器构建的网站,引入了QUIRK MODE 其中浏览器假设你已经根据20世纪90年代后期令人沮丧的行业规范编写了老式的,无效的标记和代码。

为了区分这些网站和新网站,添加了DOCTYPE ,这给浏览器一个信号,即该网页应该以STANDARD MODE呈现。

HTML5 && HTML 4.01

在HTML5之前,html是基于SGML的,它需要文档类型定义来为标记建立规则和语法。 因此,doctype具有关于文档类型定义(DTD)的其他信息。

但是,通过引入HTML5, DOCTYPE是启用STANDARD MODE所需的唯一选择。

为简单<!DOCTYPE HTML><!DOCTYPE HTML>声明代码是HTML。

暂无
暂无

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

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