簡體   English   中英

在HTML5中,可以 <!DOCTYPE html> 聲明包含其他什么?

[英]In HTML5, can my <!DOCTYPE html> declaration contain anything else?

我試圖在我的.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是否包含任何此類內容?

在HTML5中,

<!DOCTYPE html> 

是允許的DOCTYPE聲明中的一個 這是推薦的 請注意,HTML5中的情況是不敏感的。

盡管如此,如果你絕對被迫使用類似於HTML4 / XHTML的東西,你可以使用遺留兼容的doctype

<!DOCTYPE html SYSTEM "about:legacy-compat">

如果您使用某些軟件或框架來生成 HTML5文檔,則可能就是這種情況。

如果您只是在編寫新的HTML5文檔,建議您使用<!DOCTYPE html>

更多閱讀:

8.1.1 DOCTYPE

DOCTYPE是必需的前導碼。

注意 :出於傳統原因,需要DOCTYPE。 省略時,瀏覽器傾向於使用與某些規范不兼容的其他渲染模式。 在文檔中包含DOCTYPE可確保瀏覽器盡最大努力遵循相關規范。

DOCTYPE必須按以下順序包含以下組件:

  1. 字符串,它是字符串“<!DOCTYPE”的ASCII不區分大小寫的匹配項。
  2. 一個或多個空格字符
  3. 字符串,它是字符串“html”的ASCII不區分大小寫的匹配項。
  4. (可選) DOCTYPE傳統字符串過時的允許DOCTYPE字符串 (在下面定義)。
  5. 零個或多個空格字符
  6. 一個“>”(U + 003E)字符。

注意 :換句話說, <!DOCTYPE html> ,不區分大小寫。

對於無法使用短DOCTYPE“ <!DOCTYPE html> ”輸出HTML標記的HTML生成器,可以將DOCTYPE傳統字符串插入DOCTYPE(在上面定義的位置)。 該字符串必須包含:

  1. 一個或多個空格字符
  2. 字符串,它是字符串“ SYSTEM ”的ASCII不區分大小寫的匹配項。
  3. 一個或多個空格字符
  4. U + 0022 報價標記或U + 0027 APOSTROPHE字符( 引號 )。
  5. 文字字符串“ about:legacy-compat ”。
  6. 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即與前面標記為引號的步驟中的字符相同)。

注意 :換句話說, <!DOCTYPE html SYSTEM "about:legacy-compat"><!DOCTYPE html SYSTEM 'about:legacy-compat'> ,不區分大小寫,但單引號或雙引號中的部分除外。

除非文檔是從無法輸出較短字符串的系統生成的,否則不應使用DOCTYPE舊字符串。

為了幫助作者從HTML4和XHTML1過渡,可以將一個過時的允許DOCTYPE字符串插入到DOCTYPE中(在上面定義的位置)。 該字符串必須包含:

  1. 一個或多個空格字符
  2. 字符串,它是字符串“ PUBLIC ”的ASCII不區分大小寫的匹配項。
  3. 一個或多個空格字符
  4. U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(第一個引號 )。
  5. 來自下表第一列中某個單元格的字符串。 此單元格所屬的選定的行
  6. 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即與前面標記的第一個引號標記相同的字符)。
  7. 如果使用系統標識符,
    1. 一個或多個空格字符
    2. U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符( 第三個引號 )。
    3. 來自所選行的第二列中的單元格的字符串。
    4. 匹配的U + 0022 QUOTATION MARK或U + 0027 APOSTROPHE字符(即與前面步驟中標記為第三個引號的相同字符)。

過時允許的DOCTYPE字符串中的公共和系統標識符的允許值。

 ┌────────────────────────────────┬─────────────────────────────────────────────────┬───────────────────────────┐ │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含有過時允許DOCTYPE串是一個過時允許DOCTYPE。 作者不應使用過時的允許DOCTYPE ,因為它們不必要地長。

這些是允許的,但使其成為“過時允許的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>聲明,則可能無法獲得正確的文檔呈現模式。

HTML 4.01基於標准通用標記語言(SGML)。 為了使瀏覽器能夠正確呈現頁面,必須指定DTD。

HTML 5不基於SGML。 因此,它不需要引用DTD。 它只是:

<!DOCTYPE html>

對於HTML5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM