在HTML5中,我的声明可以包含其他内容吗?

时间:2015-11-06 21:19:20

标签: html html5 doctype

我正试图在我的.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是否包含任何此类内容?

4 个答案:

答案 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必须按以下顺序组成:

     
      
  1. 与字符串“&lt;!DOCTYPE”ASCII case-insensitive匹配的字符串。
  2.   
  3. 一个或多个space characters
  4.   
  5. 与字符串“html”匹配的ASCII case-insensitive字符串。
  6.   
  7. 可选择DOCTYPE legacy stringobsolete permitted DOCTYPE string(定义如下)。
  8.   
  9. 零或更多space characters
  10.   
  11. A“&gt;” (U + 003E)角色。
  12.         
        

    注意:换句话说,<!DOCTYPE html>,不区分大小写。

      
         

    出于无法输出HTML标记的HTML生成器的目的   使用短DOCTYPE“<!DOCTYPE html>”, DOCTYPE遗产   字符串可以插入DOCTYPE(在定义的位置)   以上)。该字符串必须包含:

         
        
    1. 一个或多个space characters
    2.   
    3. 与字符串“SYSTEM”匹配的ASCII case-insensitive字符串。
    4.   
    5. 一个或多个space characters
    6.   
    7. U + 0022报价标记或U + 0027 APOSTROPHE字符(引号)。
    8.   
    9. 文字字符串“about:legacy-compat”。
    10.   
    11. 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即与前面标有引号的步骤中的字符相同)。
    12.         
          

      注意:换句话说,<!DOCTYPE html SYSTEM "about:legacy-compat"><!DOCTYPE html SYSTEM 'about:legacy-compat'>,     不区分大小写,但单引号或双引号中的部分除外。

        
           

      除非文件,否则不应使用DOCTYPE legacy string   是从无法输出较短字符串的系统生成的。

           

      为了帮助作者从HTML4和XHTML1过渡,o 过时   允许的DOCTYPE字符串可以插入到DOCTYPE中(在   上面定义的位置)。该字符串必须包含:

           
          
      1. 一个或多个space characters
      2.   
      3. 与字符串“PUBLIC”匹配的ASCII case-insensitive字符串。
      4.   
      5. 一个或多个space characters
      6.   
      7. U + 0022报价标记或U + 0027 APOSTROPHE字符(第一个引号)。
      8.   
      9. 下表第一列中某个单元格的字符串。此单元格所属的行是选定的行
      10.   
      11. 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即与前面标有第一个引用的步骤相同的字符   标记)。
      12.   
      13. 如果使用系统标识符,      
            
        1. 一个或多个space characters
        2.   
        3. U + 0022报价标记或U + 0027 APOSTROPHE字符(第三个​​引号)。
        4.   
        5. 所选行的第二列中的单元格中的字符串。
        6.   
        7. 匹配的U + 0022报价标记或U + 0027 APOSTROPHE字符(即与前面标有第三个​​报价的步骤相同的字符   标记)。
        8.   
      14.         

        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                         │
        └────────────────────────────────┴─────────────────────────────────────────────────┴───────────────────────────┘
        
             

        包含DOCTYPEobsolete 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