我正试图在我的.html文件的开头指定我的声明。现在,在HTML 4.01或XHTML 1.1中,W3C还有一些额外的东西,例如:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML5是否包含任何此类内容?
答案 0 :(得分:3)
在HTML5中,
<!DOCTYPE html>
是允许的doctype声明中的一个。它是推荐的。 请注意,HTML5中的情况是不敏感的。
但是,如果您绝对被迫使用类似于HTML4 / XHTML的内容,您可以使用旧版兼容的doctype :
<!DOCTYPE html SYSTEM "about:legacy-compat">
如果您使用某些软件或框架生成 HTML5文档,则可能出现这种情况。
如果您只是在编写新的HTML5文档,建议您使用<!DOCTYPE html>
。
更多阅读:
答案 1 :(得分:2)
8.1.1 The DOCTYPE
DOCTYPE 是必需的序言。
注意:出于传统原因,需要DOCTYPE。省略时,浏览器倾向于使用不兼容的其他渲染模式 有一些规格。在文档中包含DOCTYPE可确保 浏览器尽最大努力尝试遵循相关的 规格。
DOCTYPE必须按以下顺序组成:
- 与字符串“&lt;!DOCTYPE”ASCII case-insensitive匹配的字符串。
- 一个或多个space characters。
- 与字符串“html”匹配的ASCII case-insensitive字符串。
- 可选择DOCTYPE legacy string或obsolete permitted DOCTYPE string(定义如下)。
- 零或更多space characters。
- A“&gt;” (U + 003E)角色。
醇>注意:换句话说,
<!DOCTYPE html>
,不区分大小写。出于无法输出HTML标记的HTML生成器的目的 使用短DOCTYPE“
<!DOCTYPE html>
”, DOCTYPE遗产 字符串可以插入DOCTYPE(在定义的位置) 以上)。该字符串必须包含:
- 一个或多个space characters。
- 与字符串“
SYSTEM
”匹配的ASCII case-insensitive字符串。- 一个或多个space characters。
- U + 0022报价标记或U + 0027 APOSTROPHE字符(引号)。
- 文字字符串“
about:legacy-compat
”。- 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即与前面标有引号的步骤中的字符相同)。
醇>注意:换句话说,
<!DOCTYPE html SYSTEM "about:legacy-compat">
或<!DOCTYPE html SYSTEM 'about:legacy-compat'>
, 不区分大小写,但单引号或双引号中的部分除外。除非文件,否则不应使用DOCTYPE legacy string 是从无法输出较短字符串的系统生成的。
为了帮助作者从HTML4和XHTML1过渡,o 过时 允许的DOCTYPE字符串可以插入到DOCTYPE中(在 上面定义的位置)。该字符串必须包含:
- 一个或多个space characters。
- 与字符串“
PUBLIC
”匹配的ASCII case-insensitive字符串。- 一个或多个space characters。
- U + 0022报价标记或U + 0027 APOSTROPHE字符(第一个引号)。
- 下表第一列中某个单元格的字符串。此单元格所属的行是选定的行。
- 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即与前面标有第一个引用的步骤相同的字符 标记)。
- 如果使用系统标识符,
醇>
- 一个或多个space characters。
- U + 0022报价标记或U + 0027 APOSTROPHE字符(第三个引号)。
- 所选行的第二列中的单元格中的字符串。
- 匹配的U + 0022报价标记或U + 0027 APOSTROPHE字符(即与前面标有第三个报价的步骤相同的字符 标记)。
obsolete permitted DOCTYPE string中的公共和系统标识符的允许值。
┌────────────────────────────────┬─────────────────────────────────────────────────┬───────────────────────────┐ │Public identifier │System identifier │System identifier optional?│ ├────────────────────────────────┼─────────────────────────────────────────────────┼───────────────────────────┤ │-//W3C//DTD HTML 4.0//EN │http://www.w3.org/TR/REC-html40/strict.dtd │Yes │ │-//W3C//DTD HTML 4.01//EN │http://www.w3.org/TR/html4/strict.dtd │Yes │ │-//W3C//DTD XHTML 1.0 Strict//EN│http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd│No │ │-//W3C//DTD XHTML 1.1//EN │http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd │No │ └────────────────────────────────┴─────────────────────────────────────────────────┴───────────────────────────┘
包含DOCTYPE的obsolete permitted DOCTYPE string是 过时的允许DOCTYPE 。作者不应使用obsolete permitted DOCTYPEs,因为它们不必要很长。
答案 2 :(得分:1)
允许这些但是使其成为“过时允许的DOCTYPE”。规范说明"Authors should not use obsolete permitted DOCTYPEs"
http://www.w3.org/html/wg/drafts/html/master/syntax.html#the-doctype
这些仅用于帮助开发人员从HTML4和XHTML1过渡到HTML5,但应该被视为deprecated
,如果可能,您应该避免使用它们。
另一个警告:在较旧的浏览器中,如果不使用简单的<!DOCTYPE html>
声明,则可能无法获得正确的文档呈现模式。
答案 3 :(得分:1)
HTML 4.01基于标准通用标记语言(SGML)。为了使浏览器能够正确呈现页面,必须指定DTD。
HTML 5不基于SGML。因此,它不需要引用DTD。所以它只是:
<!DOCTYPE html>
for HTML5