睡蓮‧池水間

Guest
2012-May-24  
0 位會員和 11 位訪客在線上

文章 :: 標準之路

關於DOCTYPE

javapigpig
 
藍色理想 
DOCTYPE不可怕,但把它拿走,會讓你怕了又怕。
最近在藍色理想轉悠,發現很多朋友提出有關DIV+CSS排版問題,以及IE與FF的兼容問題。怎麼問的都有,結果就是一個——顯示很奇怪,很難調整。我們瀏覽的大多數網站,或者用Dreamweaver創建一個新的網頁文檔時,源碼的頂部都會有DOCTYPE聲明,但是很多人沒有注意它,甚至在創作時候直接將它刪掉,其實這往往就是噩夢的開始。在遵循標準的任何Web文檔中,DOCTYPE都是一項必需的元素。它會影響代碼驗證,並決定了瀏覽器最終如何顯示你的web文檔。為了避免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"

●睡蓮註:上面排列順序有錯誤,正確應為如下:

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的寫法如下:

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


2.嚴格的

一種要求嚴格的DTD,不允許使用任何表現層的標識和屬性,例如<br/>等。嚴格的DTD的寫法如下:
●睡蓮註:<br/>在xhtml strict中是允許使用

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


3.框架的

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

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

●睡蓮註:上面的DTD有錯誤,正確應為如下:

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


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

四、需要注意的問題

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

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

    «« 關於斗數排盤設計 reflow »»    

引用

  • 文章地址: http://waterlily-lsl.com/modules/article/view.article.php/c1/25
  • 引用地址: http://waterlily-lsl.com/modules/article/trackback.php/25

評分

10
9
8
7
6
5
4
3
2
1


 

API: RSS | RDF | ATOM

回覆及設定

    關閉


 

最 新 發 表 及 資 訊 區

此為池水間 banner ,需要安裝 Adobe Flash Player 才能觀看內容。

最新留言

最新留言:2012-Jan-6 11:13am
留言編號:76
留言者: wuji888
網主回覆:
總留言數: 71

前往萍踪留影

造訪統計

今天:37
昨天:330
本週:2201
本月:12217
總計:433454
平均:311

連結

Powered By XOOPS
Valid XHTML 1.1
Valid CSS 3
除另有註明外,本站內容均採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 授權條款授權
登 入