这个标签有什么作用?
<!doctype html>
我能看到的是,这个标签位于顶部,我的html表现得与其他方式不同。 我怎么知道我是否需要这个标签?
答案 0 :(得分:109)
它是HTML as defined in the specification的一个组成部分:
8.1.1 DOCTYPE
DOCTYPE是必需的序言。
由于遗留原因,需要DOCTYPE。省略时,浏览器倾向于使用与某些规范不兼容的其他渲染模式。在文档中包含DOCTYPE可确保浏览器尽最大努力遵循相关规范。
编辑添加:
这个安全带做了什么?
我能看到的是,在这个安全带打开的情况下,我的车的行为与没有安全带一样。我怎么知道我是否需要这个安全带?
在出现问题并且没有它之前,你不会知道你是否需要它。
答案 1 :(得分:17)
DOCTYPE Declaration is the abbreviation for Document Type Declaration (DTD).
DOCTYPE声明(DTD或文档类型声明)做了两件事:
在网页上执行HTML验证测试时,它告诉HTML(超文本标记语言)验证器网页编码应符合哪个(X)HTML标准版本。当您验证网页时,HTML验证程序会根据适用的标准检查编码,然后报告编码的哪些部分未通过HTML验证(不符合要求)。
它告诉浏览器如何以符合标准的模式呈现页面。
如果网页编码不包含DOCTYPE声明(DTD或文档类型声明)或者操作不正确:
您将无法使用HTML(超文本标记语言)验证程序来检查页面编码。 HTML验证需要DOCTYPE声明。
渲染网页的浏览器将以怪癖模式处理编码。
样式表可能未按计划实施。
您应该使用哪种DOCTYPE?
如果您是HTML(超文本标记语言)的初学者,那么我建议您使用 HTML 4.01 Transitional
声明。在执行HTML validation时,初学者会更宽容。如果您知道您的观众没有支持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">
使用此声明,所有表示属性都将移动到样式表。
您可以在文档中使用的List of valid DTDs获取DOCTYPE声明(DTD)的完整列表。
答案 2 :(得分:5)
doctype声明应该是HTML中的第一件事 文档,在标记之前。
doctype声明不是HTML标记;这是一个指示 Web浏览器,了解该页面的标记语言版本 写的。
doctype声明引用文档类型定义(DTD)。 DTD指定标记语言的规则,以便 浏览器正确呈现内容。
从这里引用:http://www.w3schools.com/tags/tag_doctype.asp
:)
答案 3 :(得分:3)
Doctype声明会在浏览器中触发标准模式,并且应始终使用。应始终避免怪癖模式。
答案 4 :(得分:1)
要理解DOCTYPE
的重要性,让我们从浏览器大战的日子开始深入探讨一些历史。在那些日子里,网页分为两个不同版本,以支持Internet Explorer
和Netscape Navigator
。
然后W3C
接管了定义Web标准。但遗憾的是,具有新标准的浏览器无法呈现为旧版浏览器构建的网页。因此,为了支持为旧版浏览器构建的网站QUIRK MODE
。其中浏览器假设你已经根据20世纪90年代后期令人沮丧的行业规范编写了老式的,无效的标记和代码。
为了区分这些网站和新网站,我添加了DOCTYPE
,这为浏览器提供了一个信号,表明该网页应该在STANDARD MODE
中呈现。
在HTML5之前,html是基于SGML的,需要文档类型定义来为标记建立规则和语法。因此,doctype具有关于文档类型定义(DTD)的其他信息。
但是,通过引入HTML5,DOCTYPE
是启用STANDARD MODE
所需的唯一内容。
答案 5 :(得分:0)
简化:<!DOCTYPE HTML>
表示代码是HTML。