2008-11-05 165 views

回答

4

John Resig(jQuery)has a say在這方面。此外,DocType有助於使MSIE6 use the right box model,並且它也減輕驗證您的網站的痛苦(這是一個事情的發展;認爲它是調試)。

3

您應該在頁面中首先聲明DOCTYPE,因爲它會將Web瀏覽器切換到標準模式。這意味着他們至少會嘗試使用W3C和IETF標準呈現您的頁面,而不是遵循稱爲怪異模式的向後兼容模型。

根據我自己的觀察,現在有更多的使用XHTML 1.0 Transitiona l而不是HTML 4.01。 XHTML 1.0 Transitional是一種中途之家,可以爲您提供XHTML的一些好處,而不會太繁重。

2

DTD用於驗證和實體定義。他們大致指定某種標記語言和版本的語法要求。

通過使用驗證器可以對DTD進行驗證。或者,它可能在解析過程中由用戶代理完成(如某些驗證HTML/XML解析器)。如果用戶代理支持,則可以使用DTD中定義的實體。

DOCTYPE聲明是標記語言的方式(至少在HTML和XML中)引用文檔中的內聯/外部DTD。

現在,就瀏覽器的HTML(文本/ html)解析器而言,DOCTYPE聲明只是控制渲染模式(DOCTYPE切換)。根據所引用的HTML版本以及是否指定DTD URI,模式將爲標準,幾乎標準或怪癖。實際的dtd沒有被使用。例如,帶有DTD URI的XHTML 1.0 Transitional doctype可能只會將瀏覽器置於幾乎標準模式,其中帶有DTD URI的XHTML 1.0嚴格文檔類型應將瀏覽器置於標準模式。此外,HTML5的文檔類型<!DOCTYPE html >將使所有瀏覽器處於標準模式,並將IE8 +置於超級標準模式(因此它在呈現時更像現代瀏覽器)。通常,doctype對Javascript和DOM支持的影響不大(但也有例外,特別是IE8)。

對於瀏覽器,由於您幾乎總是需要完全標準模式,所以您真正需要的是<!DOCTYPE html >。更多的東西不會幫助瀏覽器。但是,該文檔適用於HTML5。如果您想要符合HTML 4.01 DTD或XHTML 1.0 DTD,則必須嚴格使用HTML 4.01 strict或XHTML 1.0,並使用正確的DTD URI來獲得完整標準模式。

如果你想符合HTML5,你可以在http://validator.nu/測試你的語法。它不針對DTD進行驗證,並且比DTD驗證更高級。它也反映了HTML5比DTD更好,因爲HTML5更好地反映了瀏覽器真正支持的內容,它的語法檢查更符合瀏覽器世界的兼容性。

如果您要符合HTML 4.01或XHTML 1.0 DTD,請使用W3C驗證程序。請注意,這些DTD並不反映瀏覽器支持的內容,而只是大致反映了它們的規格。這些DTD僅僅是爲了捕捉粗略的語法錯誤,而非爲了充分利用它們的非瀏覽器用戶代理。他們也不知道關於text/html和application/xhtml + xml之間瀏覽器行爲的不同。

要了解瀏覽器文檔類型切換:

http://www.mozilla.org/docs/web-developer/quirks/doctypes.html

http://www.opera.com/docs/specs/doctype/

http://hsivonen.iki.fi/doctype/