1. 程式人生 > >網頁開頭的doctype(文件型別) 的作用是什麼?

網頁開頭的doctype(文件型別) 的作用是什麼?

簡單來說就是告訴我們的瀏覽器採用什麼方式渲染頁面。

具體些:

DOCTYPE是document type(文件型別的)的簡寫,它必須放每個XHTML頁面在所有的標識文件和程式碼之上。它是用來說明你的XHTML或HTML是什麼版本。需要注意一下的是:在HTML 5 中,DOCTYPE 是不區分大小寫;不過對於XHTML、Polyglot HTML,DOCTYPE 這幾個字母需要大寫。如果怕和我一樣容易忘記的話,就都預設大寫就好啦。

其中瀏覽器的渲染模式主要是有三種:Quirks Mode(混雜模式、怪異模式、相容模式。因為翻譯不同的原因)、Standards Mode(標準模式、嚴格模式)、Almost Standards Mode

(幾乎標準模式)。

而瀏覽器之所以可以識別我們頁面想要的版本就是DTD的存在(文件型別定義,瀏覽器會根據裡面所規定的文件規則來讀取你的標識的)。

HTML 和 XHTML 的DOCTYPE 宣告都有 strict/transitional/frameset 三種模式。 strict 模式禁止所有 presetational or deprecatedelements(例如 font 標籤)以及 frameset標籤();transitional 模式只禁止了 frameset標籤;frameset 模式與 transitional 模式相同,並且允許 frameset 標籤。

XHTML 1.0 提供了三種DTD宣告可供選擇: 
* 過渡的(
Tr
ansitional):要求非常寬鬆的DTD,它允許你繼續使用HTML4.01的標識(但是要符合xhtml的寫法),完整程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> * 嚴格的(Strict):要求嚴格的DTD,你不能使用任何表現層的標識和屬性,例如<br>,完整程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
"> * 框架的(Frameset):專門針對框架頁面設計使用的DTD,如果你的頁面中包含有框架,需要採用這種DTD,完整程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 我們選擇什麼樣的DOCTYPE 理想情況當然是嚴格的DTD,但對於我們大多數剛接觸web標準的設計師來說,過渡的DTD(XHTML 1.0 Transitional)是目前理想選擇。因為這種DTD還允許我們使用表現層的標識、元素和屬性,也比較容易通過W3C的程式碼校驗。 注:上面說的"表現層的標識、屬性"是指那些純粹用來控制表現的tag,例如用於排版的表格、背景顏色標識等。在XHTML中標識是用來表示結構的,而不是用來實現表現形式,我們過渡的目的是最終實現資料和表現相分離。 打個比方:人體模特換衣服。模特就好比資料,衣服則是表現形式,模特和衣服是分離的,這樣你就可以隨意換衣服。而原來HTML4中,資料和表現是混雜在一起的,要一次性換個表現形式非常困難