我想在我的.html文件的開始處指定我的聲明。現在,在HTML 4.01和XHTML 1.1,W3C有一些額外的東西,比如這個:在HTML5中,我的<!DOCTYPE html>聲明是否包含其他內容?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML5是否包含任何這樣的事情?
我想在我的.html文件的開始處指定我的聲明。現在,在HTML 4.01和XHTML 1.1,W3C有一些額外的東西,比如這個:在HTML5中,我的<!DOCTYPE html>聲明是否包含其他內容?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML5是否包含任何這樣的事情?
8.1.1 The DOCTYPE
一個DOCTYPE是必需的序言。
注意:由於遺留原因需要DOCTYPE。省略時,瀏覽器傾向於使用不同的呈現模式,這與某些規範不兼容。在文檔中包括DOCTYPE確保 瀏覽器盡最大努力遵循相關的 規範。
一個DOCTYPE必須由以下幾部分組成,順序如下:
- 一個字符串,它是一個ASCII case-insensitive匹配字符串 「<!DOCTYPE」。
- 一個或多個space characters。
- 一個字符串,它是與字符串「html」匹配的ASCII case-insensitive。
- 可選地,DOCTYPE legacy string或obsolete permitted DOCTYPE string(定義如下)。
- 0或更多space characters。
- A「>」(U + 003E)字符。
注意:換句話說,
<!DOCTYPE html>
,不區分大小寫。對於不能輸出HTML標記 與短DOCTYPE「
<!DOCTYPE html>
」,一個DOCTYPE 遺留 串可被插入到所述的DOCTYPE HTML發生器的目的(在位置如上所定義 )。此字符串必須包含:
- 一個或多個space characters。
- 與字符串「
SYSTEM
」匹配的ASCII case-insensitive字符串。- 一個或多個space characters。
- A U + 0022引號或U + 0027 APOSTROPHE字符(引號)。
- 文字字符串「
about:legacy-compat
」。- 匹配的U + 0022引號或U + 0027 APOSTROPHE字符(即與前面標記爲引號的步驟中相同的字符)。
注:換句話說,
<!DOCTYPE html SYSTEM "about:legacy-compat">
或<!DOCTYPE html SYSTEM 'about:legacy-compat'>
, 不區分大小寫除了在單引號或雙引號的部分。的DOCTYPE legacy string不應被使用,除非文件 從一個系統,不能輸出較短的字符串生成。
爲了幫助從HTML4和XHTML1,鄰bsolete 允許DOCTYPE串可以插入DOCTYPE(在上面定義的 位置)作者過渡。此字符串必須包含:
- 一個或多個space characters。
- 與字符串「
PUBLIC
」匹配的字符串ASCII case-insensitive。- 一個或多個space characters。
- A U + 0022引號或U + 0027 APOSTROPHE字符(第一引號)。
- 下表中第一列的單元格之一的字符串。該單元所屬的行是所選行。
- 匹配的U + 0022引號或U + 0027 APOSTROPHE字符(即與之前標記爲的第一引號 標記相同的字符)。
- 如果使用系統標識符,
- 一個或多個space characters。
- A U + 0022引號或U + 0027 APOSTROPHE字符(第三引號)。
- 來自選定行第二列單元格的字符串。
- 匹配的U + 0022引號或U + 0027 APOSTROPHE字符(即與前面步驟中標記爲的第三引語 mark相同的字符)。
在一個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 │ └────────────────────────────────┴─────────────────────────────────────────────────┴───────────────────────────┘
甲含有obsolete permitted DOCTYPE stringDOCTYPE是 一個過時允許DOCTYPE。作者不應使用obsolete permitted DOCTYPEs,因爲它們不必要的長。
這些是允許的,但使其成爲「過時的允許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>
聲明,則可能無法獲得正確的文檔呈現模式。
在HTML5中,
<!DOCTYPE html>
是允許DOCTYPE聲明之一。並且它是推薦的一個。 請注意,它在HTML5中不適用。
不過,如果你是絕對強制使用類似於HTML4/XHTML的東西,你可以使用傳統兼容的文檔類型:
<!DOCTYPE html SYSTEM "about:legacy-compat">
這可能是這種情況,如果你使用一些軟件或框架到生成您的HTML5文檔。
如果您只是創作新的HTML5文檔,建議您僅使用<!DOCTYPE html>
。
更多閱讀:
HTML 4.01是基於標準通用標記語言(SGML)。爲了使瀏覽器能夠正確呈現頁面,必須指定DTD。
HTML 5不基於SGML。因此它不需要對DTD的引用。所以它只是:
<!DOCTYPE html>
爲HTML5
請看我的回答。他實際上希望使用「過時的允許DOCTYPE」。 –
是的,謝謝,編輯,使其更加清楚,應儘可能避免遺留的東西。 –
非常感謝! –