天天看點

HTML之DocType的幾種類型 -轉載

HTML之DocType的幾種類型轉載

doctype類型詳細doctype的幾種類型html之doctype 分類: 前端文摘  在預設情況下,FF和IE的解釋标準是不一樣的,也就是說,如果一個網頁沒有聲明DOCTYPE,它就會以預設的DOCTYPE解釋下面的HTML。在同一種标準下,不同浏覽器的解釋模型都有所差異,如果聲明标準不同,不用我說,您自己想就可以了。學習網頁标準,浏覽器相容,從哪裡開始您自己決定,但是,請認識DOCTYPE:

一、什麼是DOCTYPE

DOCTYPE是Document Type(文檔類型)的簡寫,在頁面中,用來指定頁面所使用的XHTML(或者HTML)的版本。要想制作符合标準的頁面,一個必不可少的關鍵組成部分就是DOCTYPE聲明。隻有确定了一個正确的DOCTYPE,XHTML裡的辨別和CSS才能正常生效。

二、DOCTYPE的規則

DOCTYPE聲明的寫法遵循一定的規則,它指出閱讀程式應該用什麼規則集來解釋文檔中的标記。在Web文檔的情況下,“閱讀程式”通常是浏覽器或者校驗器這樣的一個程式,“規則”則是w3c所釋出的一個文檔類型定義(dtd)中包含的規則。 每個dtd都包括标記、attributes、properties等内容,它們用于标記web文檔的内容;此外還包括一些規則,它們規定了哪些标記能出現在其他哪些标記中。每個web建議标準(比如html 4 frameset和xhtml 1.0 transitional)都有自己的dtd。

注釋: 标簽沒有結束标簽! 以下是從手冊上摘抄的規則:

文法:

HTML  頂級元素  可用性 "注冊//組織//類型标簽//定義  語言""URL" 可能值:

- 頂級元素:指定 DTD 中聲明的頂級元素類型。這與聲明的 SGML 文檔類型相對應。 HTML 預設。HTML。

- 可用性:指定正式公開辨別符(FPI)是可公開通路的對象還是系統資源。 PUBLIC 預設。可公開通路的對象。SYSTEM 系統資源,如本地檔案或 URL。

- 注冊:指定組織是否由國際标準化組織(ISO)注冊。 + 預設。組織名稱已注冊。

- 組織名稱未注冊。Internet 工程任務組(IETF)和網際網路協會(W3C)并非注冊的 ISO 組織。

組織:指定表明負責由 !DOCTYPE 聲明引用的 DTD 的建立和維護的團體或組織的名稱,即 OwnderID。 IETF IETF。 W3C W3C。

- 類型:指定公開文本類,即所引用的對象類型。 DTD 預設。DTD。

- 标簽:指定公開文本描述,即對所引用的公開文本的唯一描述性名稱。後面可附帶版本号。 HTML 預設。HTML。

- 定義:指定文檔類型定義。Frameset 架構集文檔。Strict 排除所有 W3C 專家希望逐漸淘汰的代表性屬性和元素,因為樣式表已經很完善了。Transitional 包含除 frameSet 元素的全部内容。

- 語言:指定公開文本語言,即用于建立所引用對象的自然語言編碼系統。該語言定義已編寫為 ISO 639  語言代碼(大寫兩個字母)。 EN 預設。英語。

- URL:指定所引用對象的位置 為了獲得正确的DOCTYPE聲明,關鍵就是讓dtd與文檔所遵循的标準對應。例如,假定文檔遵循的是xhtml 1.0 strict标準,文檔的doctype聲明就應該引用相應的dtd。另一方面,如果doctype聲明指定的是xhtml dtd,但文檔包含的是舊式風格的html标記,就是不恰當的;類似地,如果doctype聲明指定的是html dtd,但文檔包含的是xhtml 1.0 strict标記,同樣是不恰當的。

三、選擇什麼樣的DOCTYPE

如上例所示,XHTML 1.0中有3種DTD(文檔類型定義)聲明可以選擇:過渡的(Transitional)、嚴格的(Strict)和架構的(Frameset)。這裡分别介紹如下。

1.過渡的

一種要求不很嚴格的DTD,允許在頁面中使用HTML4.01的辨別(符合xhtml文法标準)。過渡的DTD的寫法如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2.嚴格的

一種要求嚴格的DTD,不允許使用任何表現層的辨別和屬性,例如 等。嚴格的DTD的寫法如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

3.架構的

一種專門針對架構頁面所使用的DTD,當頁面中含有架構元素時,就要采用這種DTD。架構的DTD的寫法如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

使用嚴格的DTD來制作頁面,當然是最理想的方式。但是,對于沒有深入了解Web标準的網頁設計者,比較合适的是使用過渡的DTD。因為這種DTD還允許使用表現層的辨別、元素和屬性,比較适合大多數網頁制作人員。

四、需要注意的問題

沒什麼特别的,就是一定要将DOCTYPE聲明放在XHTML文檔的頂部,上面哪怕多個HTML注釋标記都不行。

最好示例代碼也加上DOCTYPE,否則效果會有差異。

HTML HTML 4.01 規定了三種文檔類型:Strict、Transitional 以及 Frameset。

HTML Strict DTD 如果您需要幹淨的标記,免于表現層的混亂,請使用此類型。請與層疊樣式表(CSS)配合使用:

  DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd" HTML Transitional DTD Transitional DTD 可包含 W3C 所期望移入樣式表的呈現屬性和元素。如果您的讀者使用了不支援層疊樣式表(CSS)的浏覽器以至于您不得不使用 HTML 的呈現特性時,請使用此類型:

 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd"  Frameset DTD Frameset DTD 應當被用于帶有架構的文檔。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

  DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " http://www.w3.org/TR/html4/frameset.dtd" XHTML XHTML 1.0 規定了三種 XML 文檔類型:Strict、Transitional 以及 Frameset。

XHTML Strict DTD 如果您需要幹淨的标記,免于表現層的混亂,請使用此類型。請與層疊樣式表(CSS)配合使用:

  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" XHTML Transitional DTD Transitional DTD 可包含 W3C 所期望移入樣式表的呈現屬性和元素。如果您的讀者使用了不支援層疊樣式表(CSS)的浏覽器以至于您不得不使用 XHTML 的呈現特性時,請使用此類型:

  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" XHTML Frameset DTD 當您希望使用架構時,請使用此 DTD!

  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" 如需檢查你是否編寫了帶有正确 DTD 的合法 XHTML 文檔,您可以把您的 XHTML 頁面連結到一個 XHTML 驗證器。

選擇正确的doctype:

為了獲得正确的doctype聲明,關鍵就是讓dtd與文檔所遵循的标準對應。

例如,假定文檔遵循的是xhtml 1.0 strict标準,文檔的doctype聲明就應該引用相應的dtd。

另一方面,如果doctype聲明指定的是xhtml dtd,但文檔包含的是舊式風格的html标記,就是不恰當的;類似地,如果doctype聲明指定的是html dtd,但文檔包含的是

xhtml 1.0 strict标記,同樣是不恰當的。

如果沒有指定有效的doctype聲明,大多數浏覽器都會使用一個内建的預設dtd。在這種情況下,浏覽器會用内建的dtd來試着顯示你所指定的标記(不過這是頁面寫得太糟糕的時候的做法)。

看了一下京東、淘寶、還有部落格園,用的都是這個(本人也一直都是用的這個):

但是發現百度跟谷歌用的是“”,就再仔細查了一下資料,發現HTML5也是直接用的這個,不過是因為 HTML 5 不基于 SGML,是以不需要對 DTD 進行

引用,但是需要 doctype 來規範浏覽器的行為(讓浏覽器按照它們應該的方式來運作)。

建議在以後都直接用“”,用的話就會開啟浏覽器的标準相容模式,在标準相容模式下,不能保證與其它版本(IE6之前的,直接忽略吧),的 Internet Explorer 保持相容,文檔的渲染行為也許與将來的 Internet Explorer 不同,但也請大家放心地使用吧~~

小貼士:

XHTML 1就是HTML 4.01的XML化,是一種不向前相容的格式。

HTML 4.01 中的 doctype 需要對 DTD 進行引用,因為 HTML 4.01 基于 SGML。

SGML規定了在文檔中嵌入描述标記的标準格式,指定了描述文檔結構的标準方法,目前在WEB上使用的HTML格式便是使用固定标簽集的一種 SGML文檔。

樹立目标,保持活力,gogogo!