2011-06-02 83 views
9

我知道不同的文檔類型基本上是關於html是如何兼容的,但是它與您指定的文檔類型有什麼不同?瀏覽器根據文檔類型處理相同的代碼嗎? 謝謝DOCTYPE有什麼意義?

更新 - 大多數答案提到怪癖模式可以被關閉,如果沒有指定文檔類型。但是,xhtml和html 4.01會有什麼不同呢?

回答

5

最重要的是有沒有文檔類型。如果你不這樣做,瀏覽器將以「怪癖」模式而不是標準模式工作,許多事情會稍有不同。如果您有一個  —任何  —通常會激活瀏覽器中更多符合標準的行爲。

對於什麼文檔類型上的各種不同的瀏覽器做的細節,什麼模式  —怪癖,標準,幾乎標準等  —不同的瀏覽器有見this article。引用相關章節:

模式爲text/html的內容

模式文本/ html內容 的選擇 取決於DOCTYPE嗅探(本文中所討論 更高版本)。在IE8和 IE9中,該模式也取決於其他因素的其他 。但是,默認情況下,即使在 IE8和IE9中,模式取決於 doctype的非內部網站點, 不在 Microsoft提供的黑名單中。

它不能強調 足夠的 模式的精確行爲不同瀏覽器到瀏覽器 即使這 文檔中的討論已經統一。

Quirks模式

在怪癖模式的瀏覽器 違反現代的Web 格式規範,以避免 「破」頁面按照原來在90年代末 普遍的做法撰寫 。不同的 瀏覽器實現不同的怪癖。 在Internet Explorer 6,7,8和9, 中,Quirks模式被有效地凍結爲 IE 5.5。在其他瀏覽器中,Quirks 模式與幾乎標準模式下的 有一些偏差。

如果你現在正在創作新的頁面, 你應該遵守 相關規範(在 尤其是CSS 2.1),並使用標準 模式。

標準模式

在標準模式 瀏覽器嘗試給符合 文檔規範明智 正確的治療方法,以在特定瀏覽器中實現的程度 。

由於不同的瀏覽器是在遵守 不同階段, 標準模式不是單一的目標, 任一。

HTML 5將此模式稱爲「no quirks mode」。

幾乎標準模式

火狐,Safari, 鉻,歌劇(自7.5),IE8和IE9 也有稱爲「幾乎 標準模式」,它實現了 垂直上漿的模式表格單元 根據CSS2規範傳統而非嚴格地 。 的Mac IE 5,視窗IE 6和7,歌劇 之前7.5和Konqueror不需要 一個概標準模式,因爲它們 嚴格根據 CSS2規範不實現 表格單元的垂直上漿其無論如何,它們都是各自的標準模式。在 事實上,它們的標準模式比較接近標準模式的 比標準模式的新瀏覽器更接近 。

HTML 5將此模式稱爲「限制 怪癖模式」。

IE7模式

IE8和IE9有一個模式 主要是模式 那是在IE7標準模式的凍結副本。 其他瀏覽器沒有像 這樣的模式,並且此模式未通過HTML5指定爲 。

IE8標準模式

IE9有一個模式 主要是模式 那是在IE8標準模式的凍結副本。 其他瀏覽器沒有像 這樣的模式,並且此模式未通過HTML5指定爲 。

IE8幾乎標準模式

IE9具有 模式大多的 那是在IE8的準標準 模式的模式的凍結副本。其他瀏覽器不需要 有這樣的模式,並且這種模式 不是由HTML5指定的。

...但請參閱文章進行全面討論。

2

這完全是關於標準,是的,瀏覽器處理代碼的方式不同。這意味着,所有瀏覽器應該平等地顯示頁面。如果沒有指定標準,瀏覽器會根據需要翻譯頁面。

2

該聲明不是XHTML標籤;它是網頁瀏覽器關於寫入頁面的標記語言版本的指令。

該聲明引用文檔類型定義(DTD)。 DTD指定了標記語言的規則,以便瀏覽器正確地呈現內容。

2

Wikipedia

文件類型聲明,或 DOCTYPE,是一個指令 關聯特定SGML或XML 文檔(例如,網頁)以 一個文檔類型定義( DTD)(例如, 示例, 的特定版本的HTML的正式定義)。在文檔的 序列化格式中,其 表示爲符合特定語法的標記的短字符串 。

在現代網絡中的HTML佈局引擎 瀏覽器執行DOCTYPE「嗅探」或 「切換」,其中在 文檔DOCTYPE擔任text/html的 確定的佈局模式,如 「快速模式」或「標準模式」。不基於SGML的的 文本/ html序列化使用 DOCTYPE僅用於模式選擇。由於 Web瀏覽器與 專用HTML解析器,而 不是通用的基於DTD 解析器實現的,他們不使用DTD,甚至URL是提供 將 從未訪問它們。 DOCTYPE在 HTML5中保留爲「常用瀏覽器」中的「大多無用,但需要 」標題僅觸發 「標準模式」。

我決定引用這段文字,因爲它比我更願意回答你的問題:)。缺少DOCTYPE會在某些瀏覽器中觸發「怪異模式」,這一點很重要。

1

doctype聲明應該是標記之前的HTML文檔中的第一件事。

這不是一個HTML標籤; 是到有關頁面上寫的是標記語言的什麼版本的Web瀏覽器的指令

它變得更加簡單與HTML5:<!DOCTYPE html>

如果你沒有這樣的合適的文檔類型,瀏覽器榮獲不知道要使用HTML5。

0

因爲Doctype是告訴瀏覽器如何處理頁面的標誌。

例如:

HTML5需要這樣的doctype <!DOCTYPE html> 如果從頁面中刪除此,您的網頁內的任何HTML5功能將不會被激活。

你可以閱讀更多的http://www.w3.org/QA/Tips/Doctype

+1

非也。瀏覽器不區分HTML的版本。無論您使用HTML5文檔類型,XHTML1文檔類型還是HTML4文檔類型(只要確保您的文檔類型觸發標準合規模式),您的瀏覽器就能夠在頁面內使用HTML5功能。 – duri 2011-06-02 10:34:02

+0

對不起,魯迪我不得不downvote你,因爲這是不正確的說html5不會工作沒有文檔類型。瀏覽器只能_might_在符合標準的模式下運行,如果將其忽略掉 – stephenmurdoch 2011-06-02 10:43:44

+1

來自docs:_ DOCTYPE聲明是<!DOCTYPE html>,並且在HTML語法中不區分大小寫。早期版本的HTML中的DOCTYPE較長,因爲HTML語言是基於SGML的,因此需要對DTD進行引用。對於HTML5,這不再是這種情況,並且* DOCTYPE僅用於爲使用HTML語法*編寫的文檔啓用標準模式。瀏覽器已經爲<!DOCTYPE html>做了這個._ – Xaerxess 2011-06-02 10:46:42

2

瀏覽器模式

回到過去,瀏覽器中實現CSS到他們自己的規則。
只有多年以來,瀏覽器才適應W3C標準。

爲了確保網站正確地呈現各種瀏覽器,網站開發人員必須根據這些瀏覽器的意願來實現CSS。因此,大多數網站以不符合規範的方式使用CSS。

因此,當標準符合標準變得重要時,瀏覽器供應商面臨着艱難的選擇。更接近W3C規範是要走的路,但如果他們只是改變CSS實現來完美匹配標準,許多網站就會或多或少地受到破壞。如果以正確的方式突然解釋,現有的CSS將開始顯示出奇怪的副作用。

因此,接近符合標準會導致問題。另一方面,不接近符合標準會延續瀏覽器大戰時代的普遍混亂。

爲此,所有瀏覽器必須開始支持這兩種模式。舊設計的怪癖模式和新設計的標準模式。

意譯從這裏:Quirks mode and strict mode

DOCTYPES

選擇要使用哪種模式需要一個觸發器,該觸發器在「DOCTYPE開關」找到。根據標準,任何(X)HTML文檔都應該有一個文檔類型,它告訴整個世界該文檔正在使用哪種(X)HTML HTML5的HTML5風格。

從這裏過摘自:Quirks mode and strict mode

產生額外的資源