来自:http://www.w3schools.com/tags/tag_doctype.asp
< !DOCTYPE>声明不是HTML标记;这是一个指示 关于页面编写的HTML版本的Web浏览器。
在HTML 4.01中,< !DOCTYPE>声明是指DTD,因为HTML 4.01基于SGML。 DTD指定标记语言的规则,以便浏览器正确呈现内容。
HTML5不基于SGML,因此不需要引用 到DTD。
提示:始终添加< !DOCTYPE>声明HTML文档,以便浏览器知道所期望的文档类型。
粗体语句是否意味着当我们使用HTML 5时,我们不需要指定< !DOCTYPE html> ?
这句话究竟意味着什么?
我目前正在使用<我的html文件中的DOCTYPE html> 与浏览器Firefox 4.我删除了该声明,但没有看到渲染输出有任何差异。 这是否意味着问题可能发生在旧浏览器中而不是新浏览器中?
答案 0 :(得分:6)
术语令人困惑,但DTD (document type definition)只是document type declaration的一部分(通常缩写为“doctype”)。如果您使用HTML5,则应始终包含doctype 声明(<!DOCTYPE html>
),但不再需要文档类型 definition 标识符。
为了提供一个具体的例子,这就是HTML4.01文档类型声明(“doctype”)可能看起来像:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
上述声明中的文档类型定义(“DTD”)标识符是此部分:
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"
这是你可以为HTML5留下的部分。 “PUBLIC”指定DTD的可用性,因此如果没有DTD,也不应该包括它。
答案 1 :(得分:4)
粗体语句是否意味着当我们使用HTML 5时,我们不需要指定?
这意味着您无法指定。
HTML 5 Doctype中没有公共或系统标识符。
我目前在我的html文件中使用
<!DOCTYPE html>
这是必需的。继续这样做。
使用浏览器Firefox 4.
当前稳定版的Firefox是版本20.你应该升级。
我删除了该声明,但没有看到渲染输出有任何差异。这是否意味着问题可能发生在旧浏览器中而不是新浏览器中?
不,这只是意味着您没有任何受Quirks mode影响的代码(或者您执行但未发现更改)。
答案 2 :(得分:1)
让我们看一下W3C HTML5的定义,他们有一个关于HTML5带来的差异的方便页面: http://www.w3.org/TR/html5-diff/#doctype
2.2 Doctype
HTML5的HTML语法要求指定doctype以确保 浏览器以标准模式呈现页面。 doctype有 没有其他目的。 [DOCTYPE]
HTML语法的doctype声明是和 不区分大小写。早期版本的HTML中的Doctypes更长 因为HTML语言是基于SGML的,因此需要一个 参考DTD。 HTML5不再是这种情况和 doctype只需要为编写的文档启用标准模式 使用HTML语法。浏览器已经为此做了这个。
支持无法生成首选项的旧式标记生成器 简短的doctype,HTML语法中允许使用doctype。
HTML 4.0,HTML 4.01,XHTML 1.0的严格文档类型以及 在HTML语法中也允许(但不鼓励)XHTML 1.1。
在 XML语法中,可以使用任何doctype声明,或可能是 完全省略。 XML媒体类型的文档始终是 以标准模式处理。
在该页面上,第1章(简介)详细介绍了HTML与XML语法:
HTML5草稿(..)定义了一种名为HTML的语言,可以用 HTML 语法和 XML 语法编写。
因此,如果你的HTML5是严格的XML语法,我可以从最后一段得出结论,在这种情况下,你不应该在doctype行前加上。
有关语法上的差异,请参阅第2章:
HTML5 HTML 语法:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Example document</title>
</head>
<body>
<p>Example paragraph</p>
</body>
</html>
HTML5 XML 语法:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Example document</title>
</head>
<body>
<p>Example paragraph</p>
</body>
</html>
语法上有一些细微差别。