指定了 HTML 文檔遵循的文檔類型定義(DTD)。
Microsoft? Internet Explorer 6 的新增內(nèi)容 你可使用此聲明將 Internet Explorer 6 及以后版本切換到標準兼容模式下。
語法
HTML 頂級元素 可用性 "注冊//組織//類型 標簽//定義 語言""URL"
可能值
頂級元素 指定 DTD 中聲明的頂級元素類型。這與聲明的 SGML 文檔類型相對應。 HTML 默認。HTML。 可用性 指定正式公開標識符(FPI)是可公開訪問的對象還是系統(tǒng)資源。 PUBLIC 默認。可公開訪問的對象。 SYSTEM 系統(tǒng)資源,如本地文件或 URL。 注冊 指定組織是否由國際標準化組織(ISO)注冊。 + 默認。組織名稱已注冊。 - 組織名稱未注冊。Internet 工程任務組(IETF)和萬維網(wǎng)協(xié)會(W3C)并非注冊的 ISO 組織。 組織 指定表明負責由 !DOCTYPE 聲明引用的 DTD 的創(chuàng)建和維護的團體或組織的名稱,即 OwnderID。 IETF IETF。 W3C W3C。 類型 指定公開文本類,即所引用的對象類型。 DTD 默認。DTD。 標簽 指定公開文本描述,即對所引用的公開文本的唯一描述性名稱。后面可附帶版本號。 HTML 默認。HTML。 定義 指定文檔類型定義。 Frameset 框架集文檔。 Strict 排除所有 W3C 專家希望逐步淘汰的代表性屬性和元素,因為樣式表已經(jīng)很完善了。 Transitional 包含除 frameSet 元素的全部內(nèi)容。 語言 指定公開文本語言,即用于創(chuàng)建所引用對象的自然語言編碼系統(tǒng)。該語言定義已編寫為 ISO 639 語言代碼(大寫兩個字母)。 EN 默認。英語。 URL 指定所引用對象的位置。
注釋
此聲明必須出現(xiàn)在文檔的起始處,出現(xiàn)在 html 標簽之前。
!DOCTYPE 元素不需要關(guān)閉標簽。
此元素在 Microsoft? Internet Explorer 3.0 的 HTML 中可用。
你可使用此聲明在 Internet Explorer 6 及以后版本中切換為嚴格的標準兼容模式。若想打開此開關(guān),請在你的文檔頂部包含 !DOCTYPE 聲明,在聲明中指定合法的標簽,在某些情況下,還需要指定定義和/或 URL。下面的表格列出了標準兼容模式的開關(guān)情況。 DOCTYPE 出現(xiàn) URL 未出現(xiàn) URL 未出現(xiàn) DOCTYPE 關(guān) 關(guān) HTML (無版本) 關(guān) 關(guān) HTML 2.0 關(guān) 關(guān) HTML 3.0 關(guān) 關(guān) HTML 4.0 開 開 HTML 4.0 Frameset 開 關(guān) HTML 4.0 Transitional 開 關(guān) HTML 4.0 Strict 開 開 XHTML 開 開 XML 開 開 無法識別的 DOCTYPE 開 開
注意 在標準兼容模式下,不能保證與其它版本的 Internet Explorer 保持兼容。當打開標準兼容模式時,文檔的渲染行為也許與將來版本的 Internet Explorer 不同。若內(nèi)容本來就是固定的(如刻錄在 CD 上),則不應該使用此模式。
示例
下面的例子演示了如何使用 !DOCTYPE 聲明指定文檔遵從的 DTD,并將 Internet Explorer 6 及更高版本切換到標準兼容模式。 下面例子中的聲明都指定了遵從 HTML 4.0 DTD。第二種聲明指定了“Strict”。第一種聲明沒有指定。這兩種聲明都將會把 Internet Explorer 6 及以后版本切換到標準兼容模式。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
下面例子中的聲明都指定了遵從“Transitional”HTML 4.0 DTD。第二種聲明指定了 DTD 的 URL。第一種聲明沒有指定。第二種聲明將會把 Internet Explorer 6 及以后版本切換到標準兼容模式。第一種聲明不會。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "======================================================使用正確的doctype聲明 雖然大多數(shù)Web文檔的頂部都有doctype聲明,但很多人都沒有注意它。它是在你新建一個文檔時,由Web創(chuàng)作軟件草率處理的眾多細節(jié)之一。雖然doctype被許多人忽視,但在遵循標準的任何Web文檔中,它都是一項必需的元素。doctype會影響代碼驗證,并決定了瀏覽器最終如何顯示你的Web文檔。doctype的作用doctype聲明指出閱讀程序應該用什么規(guī)則集來解釋文檔中的標記。在Web文檔的情況下,“閱讀程序”通常是瀏覽器或者校驗器這樣的一個程序,“規(guī)則”則是W3C所發(fā)布的一個文檔類型定義(DTD)中包含的規(guī)則。每個DTD都包括一系列標記、attributes和properties,它們用于標記Web文檔的內(nèi)容;此外還包括一些規(guī)則,它們規(guī)定了哪些標記能出現(xiàn)在其他哪些標記中。每個Web建議標準(比如HTML 4 Frameset和XHTML 1.0 Transitional)都有自己的DTD。假如文檔中的標記不遵循doctype聲明所指定的DTD,這個文檔除了不能通過代碼校驗之外,還有可能無法在瀏覽器中正確顯示。對于標記不一致的問題,瀏覽器相較于校驗器來說更寬容。但是,不正確的doctype聲明經(jīng)常導致網(wǎng)頁不正確顯示,或者導致它們根本不能顯示。選擇正確的doctype 為了獲得正確的doctype聲明,關(guān)鍵就是讓DTD與文檔所遵循的標準對應。例如,假定文檔遵循的是XHTML 1.0 Strict標準,文檔的doctype聲明就應該引用相應的DTD。另一方面,如果doctype聲明指定的是XHTML DTD,但文檔包含的是舊式風格的HTML標記,就是不恰當?shù)模活愃频兀绻鹍octype聲明指定的是HTML DTD,但文檔包含的是XHTML 1.0 Strict標記,同樣是不恰當?shù)摹?BR>有的時候,也可以根本不使用一個doctype聲明。如果沒有指定有效的doctype聲明,大多數(shù)瀏覽器都會使用一個內(nèi)建的默認DTD。在這種情況下,瀏覽器會用內(nèi)建的DTD來試著顯示你所指定的標記。對于一些臨時性的、匆忙拼湊的文檔(這種文檔有許多),你確實可以考慮省略doctype聲明,并接受瀏覽器的默認顯示。完全可以從頭編寫一個doctype聲明,并讓它指向自己選擇的一個DTD。然而,由于大多數(shù)Web文檔都需要遵循由W3C發(fā)布的某個國際公認的Web標準,所以那些文檔通常都要包含以下標準doctype聲明之一:HTML 2:<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> HTML 3.2:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> HTML 4.01 Strict:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> HTML 4.01 Transitional:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> HTML 4.01 Frameset:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN""http://www.w3.org/TR/html4/frameset.dtd"> XHTML 1.0 Strict:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> XHTML 1.0 Transitional:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTML 1.0 Frameset:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> XHTML 1.1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> XHTML 1.1 plus MathML plus SVG:<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN""http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"> 除了上面列出的doctype聲明,具有特殊要求的一些文檔還使用了其他幾種聲明。doctype聲明通常是文檔的第一行,要在<html>標記以及其他文檔內(nèi)容之前。注意,在XHTML文檔中,doctype的前面偶爾會出現(xiàn)一條XML處理指令(也稱為XML prolog):<?xml version="1.0" encoding="utf-8"?> 為了確保網(wǎng)頁正確顯示和順利通過驗證,使用正確的doctype是關(guān)鍵。與內(nèi)容相反的、不正確的或者形式錯誤的doctype是大量問題的罪魁禍首。在未來的專欄文章中,我還會具體解釋如何診斷及糾正這些問題。==============================================其他關(guān)于這個問題的帖子:http://search.teein.com/results.aspx?q=DTD&st=PST&SiteID=29&hl=zh-cn&lu=http%3A%2F%2Fwww.blueidea.com%2Fimg%2Fcommon%2Flogo.gif&rt=%BE%AD%B5%E4%C2%DB%CC%B3%CB%D1%CB%F7%BD%E1%B9%FB&ku=http%3A%2F%2Fwww.blueidea.com%2F曾經(jīng)也是網(wǎng)頁大師,現(xiàn)在也要好好學學細節(jié)問題了,呵呵http://www.w3cn.org/article/step/2004/26.html