2010-06-30 48 views

回答

8

Zeldman wrote

每HTML和XHTML標準,一個 DOCTYPE(以下簡稱「文檔類型聲明 」)通知驗證 哪個版本的(X)HTML你使用, 和必須出現在每個網頁的頂部 。 DOCTYPE是一個關鍵 兼容網頁的組成部分:您的 標記和CSS不會驗證沒有 他們。

,並看看24條途徑 「Transitional vs. Strict Markup

在未來的HTML 5,你只需要聲明

<!DOCTYPE HTML> 
1

查看http://www.quirksmode.org/css/quirksmode.html的全面討論;簡而言之,doctype應該引發頁面渲染和行爲的quirks/strict模式。

不幸的是,人們開始投入文檔而不知道他們在做什麼,從而減少了它們的有用性。

8

Escpecially微軟IE有一定的一大難題文檔類型或完全缺乏文檔類型。 At the bottom of this page您可以結合某些文檔類型找到瀏覽器行爲的簡要概述。有三種標準的行爲:

  • Q - Quirksmode。你真的不想那麼做。它在IE中觸發box model bug。然後,CSS widthheight錯誤地覆蓋了paddingborder
  • A - 幾乎標準模式。價格合理,只有垂直大小的表格單元格不符合CSS2規範。如果你想避免mysterious gaps of images in table cells有用。
  • S - 標準模式。瀏覽器試圖完全符合w3 HTML/CSS標準。首選模式,因爲它是唯一的模式,您可以更少或更確定您的網站在所有瀏覽器中看起來完全一樣。

下面是一段HTML,它演示了IE中的盒子模型錯誤。 Copy'n'paste'n'run它。在出現<!DOCTYPE html>時,您會看到一個矩形。如果沒有doctype行,您會看到一個真正的廣場。

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Remove DOCTYPE to trigger quirksmode</title> 
     <style> 
      #box { 
       background: yellow; 
       width: 100px; 
       padding: 20px; 
       border: 20px solid black; 
       margin: 20px; 
      } 
     </style> 
    </head> 
    <body> 
     <div id="box">box</div> 
    </body> 
</html> 

當你想要一個「pixelperfect」網頁設計時,這個IE bug的影響是最引人注目的。

0

當然,所有的html文檔都需要DOCTYPE來聲明html的版本,並告訴瀏覽器如何翻譯html 這樣你就可以避免很多瀏覽器的bug。

0

當您在頁面上設置DOCTYPE時,會強制瀏覽器進入符合標準的模式,該模式會強制執行更嚴格的呈現規則。

如果你不使用它,IE可能會退回到怪癖模式,這可能會導致頁面顯示問題。

看到這個鏈接Remember to declare your doctype

0

doctype它是一個向瀏覽器發出有關使用標記語言版本的指令。 doctype啓用html屬性。