2013-04-21 93 views

回答

1

Doctype如規範中所定義。

8.1.1 The DOCTYPE 

A DOCTYPE is a required preamble. 

DOCTYPEs are required for legacy reasons. When omitted, browsers tend 
to use a different rendering mode that is incompatible with some 
specifications. Including the DOCTYPE in a document ensures that the 
browser makes a best-effort attempt at following the relevant specifications. 

什麼DOCTYPE聲明中:

  1. 在網頁上執行HTML驗證測試它講述了HTML(超文本標記語言)的驗證哪個版本的(X)HTML標準的網頁編碼應該遵守。當您驗證您的網頁時,HTML驗證程序會根據適用的標準檢查編碼,然後報告哪些編碼部分未通過HTML驗證(不符合)。

  2. 它告訴瀏覽器如何在符合標準的模式下呈現頁面。

如果不包含DOCTYPE:

  1. 你將不能夠使用HTML(超文本標記語言)驗證檢查頁面編碼。

  2. 瀏覽器重新發佈網頁將以「怪癖」模式處理編碼。

  3. 樣式表可能無法按計劃實施。

0

爲什麼?

爲什麼指定文檔類型?因爲它定義了文檔實際使用的(X)HTML版本,並且這是處理文檔的某些工具所需的關鍵信息。

例如,指定文檔的文檔類型允許您使用諸如標記驗證程序之類的工具來檢查(X)HTML的語法。如果他們不知道您使用的是什麼類型的文檔,這些工具將無法工作。

但最重要的是,對於大多數瀏覽器系列,文檔類型聲明將使大量猜測變得不必要,從而觸發「標準」呈現模式。

http://www.w3.org/QA/Tips/Doctype

+0

標準模式與猜測使用什麼HTML風格無關。 – Quentin 2013-04-21 15:20:52

2

爲什麼我們需要申報和

歷史?它爲驗證程序提供了一種方法,以便知道哪些元素和屬性可以在何處以及解析器如何擴展實體引用。

HTML 5放棄了這個想法,並且有一個更簡單的Doctype,它除了觸發標準模式之外什麼都不做(見下文)。

聲明是否影響樣式?

瀏覽器廠商,因爲他們出現了「擁有大量錯誤」時代,他們決定使用Doctype作爲啓發式來確定頁面的作者是否知道他們在做什麼。

沒有Doctype,他們決定作者不知道他們在做什麼,並模仿了很多古老的錯誤。這會在不同的瀏覽器呈現給定頁面時產生很多不一致。這叫做怪癖模式。

隨着一個DOCTYPE(除了某些文檔類型),他們決定,筆者知道自己在做什麼,並努力使盡可能接近標準怎麼說盡可能的頁面。這是標準模式。