HTML <!DOCTYPE> 標籤

搞過前端的人,都知道寫html要加上聲明。我對HTML 這個標籤,真是天天見,天天視而不見。這個標籤到底是幹嘛用的?我還真說不出來。今天我搜集結合網上的資料總結了一下。
<!DOCTYPE> 聲明位於文檔中的最前面的位置,處於 <html> 標籤之前。此標籤可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規範。大多數瀏覽器都支持兩種模式:怪異模式和標準模式。如果未聲明<!DOCTYPE>,瀏覽器在渲染頁面的時候會使用怪異模式;各個瀏覽器在怪異模式下對各個元素渲染是有差異的。使用doctype,瀏覽器就會在標準模式下渲染。(IE6以下版本,聲明doctype也工作在怪異模式下。)
HTML 4規定了三種文檔類型:Strict、Transitional 以及 Frameset。寫法分別是:
1.Strict:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2.Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3.Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Strict DTD 用於和層疊樣式表CSS配合使用。如果您需要乾淨的標記,免於表現層的混亂,請使用此類型。[color=red]這裏千萬注意,如果你的CSS裏面用了 margin:0 auto;使元素居中,必須使用此類型。[/color]
Transitional DTD 可包含 W3C 所期望移入樣式表的呈現屬性和元素。如果您的讀者使用了不支持層疊樣式表(CSS)的瀏覽器以至於您不得不使用 HTML 的呈現特性時,請使用此類型。
Frameset DTD 應當被用於帶有框架的文檔。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同於 Transitional DTD。

XHTML 1.0 也規定了三種 XML 文檔類型。 分別是Strict、Transitional 和 Frameset。具體寫法如下:
1.Strict:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2.Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3.Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
這三種寫法的區別跟HTML4.0的三種寫法基本相同。

HTML5的寫法如下:
<!DOCTYPE html>

<!DOCTYPE html>這種寫法現代的瀏覽器基本都支持,而且簡潔明瞭。
我一直以爲只寫<!DOCTYPE html> 不指定dtd將會開啓瀏覽器的怪異模式,這是錯誤的。我在IE8和FF下測試,只些<!DOCTYPE html>,不指定DTD,不進入怪異模式。IE其他版本手上沒有,沒有測試。也不能排除在佈局的時候出現什麼問題。反正現在的工具都很方便,這個東西也不用手輸入。在Dreamweaver中,新建HTML的時候,可以選擇文檔類型。所以就不要偷懶了。[img]http://dl.iteye.com/upload/attachment/543530/f016f636-5712-3419-8d2f-8fc8c965030b.jpg[/img]


用Javascript可以取得瀏覽器是工作在標準模式還是怪異模式下。
mode=document.compatMode;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章