2009-11-30 96 views
24

我們經常看到<!DOCTYPE ...>如下:!DOCTYPE的功能是什麼?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

什麼的!DOCTYPE的功能?

回答

23

DOCTYPE最重要的用途是switch a browser between Quirks Mode and Standards Mode rendering

此功能是由於舊版本IE中的「損壞」渲染而產生的。人們意識到,如果微軟只是「固定」IE瀏覽器渲染引擎,很多現有的網站將無法正常渲染。所以它的工作方式是,如果你在頁面中全部放入任何有效的DOCTYPE聲明,那麼假設你知道你在做什麼,並且你的瀏覽器將以符合標準的方式呈現,並且如果你沒有放置一個它會以舊的「錯誤」方式渲染。

這最初是在IE瀏覽器中爲Mac完成的,但這種行爲在IE5以後的所有版本以及Firefox,Chrome,Safari和Opera中都是一樣的。

什麼DOCTYPE是假設Document Type Definition。 HTML是SGML的子集(與XML一樣)。 DTD告訴解析器你正在使用哪種語法。因此,在網頁中,您的DOCTYPE應該與您使用的HTML版本匹配。

+0

所以「xhtml1-transitional.dtd」是指怪癖模式還是標準模式? – Ricky 2009-11-30 09:32:40

+1

所有有效的文檔類型(包括XHTML 1.0 Transitional)都將導致頁面以標準模式顯示。但是,如果doctype被忽略,頁面將以怪癖模式顯示。 – 2009-11-30 09:34:30

7

它告訴驗證者您使用的是哪個版本的HTML。瀏覽器使用此信息正確呈現頁面。

下面是DOCTYPE的正確版本:

  • HTML 4.01嚴格,過渡,框架集

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 
    
  • XHTML 1.0嚴格,過渡,框架集

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
    
  • XHTML 1.1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
    
  • HTML5

    <!DOCTYPE html> 
    
+0

這些定義有什麼區別?是xhtml 1.1和html 4一樣嗎? – hora 2009-11-30 10:09:07

+0

它們是不同的標準 – demas 2009-11-30 10:20:41

+4

您也可以添加HTML5 Doctype:「<!DOCTYPE html>」。 – 2009-11-30 10:32:55

-1

它告訴你的瀏覽器,它加載使得加載時間有點快的瀏覽器知道會發生什麼,其HTML的版本。

doctype是由w3c定義的標準 - 當您聽到有關基於標準的Web開發時,這就是他們正在談論的內容。使用doctype的想法是您創建遵循doctype的有效HTML。

如果你很聰明,你實際上可以編寫自己的文檔類型。

-1

DOCTYPE的主要(實用)目的是強制IE從「怪癖模式」到「符合標準的模式」,這兩種模式都是針對「可怕破碎模式」和「輕微破碎模式」(分別)的委婉語。