2005年03月15日 22:41

DOCTYPE使用方法

DOCTYPE 切換運作的方式:

  • 若有完整 URI 的 XHTML DOCTYPE,則切到標準模式,用 W3C 規則來讀網頁裡的 CSS 與 XHTML。
  • 若有不完整或過時的 DOCTYPE 或沒有 DOCTYPE,就切成相容模式,
    用傳統方法來處理網頁。

完整的長得像這樣,會讓瀏覽器切到標準模式:
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
這是 XHTML 1.0 Strict DOCTYPE,還有 Transitional 跟 Frameset DOCTYPE。

不完整的像這樣,會切到相容模式:
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN"
"/DTD/xhtml1-strict.dtd">

兩者差異只在於前者用絕對路徑,後者用相對路徑。
當然,這是個正確的網址,你可以連去下載到該份 DTD,可是瀏覽器看到它時,不會真的去下載這 DTD,它只是用來判斷要切換成哪種模式罷了。
(另,IE 並不守規矩,網頁中只要出現 XHTML DOCTYPE,不論是否是完整網址,IE 都會切成標準模式。 但為了其他瀏覽器,建議還是用完整路徑)
(但,就算有完整路徑,只要網頁開頭有 <?xml version="1.0" ...?> 這東東,稱為 XML Prolog,IE6就會切成相容模式 =.=)


以下列出各 DTD。


XHTML 1.0 Strict
可讓所有支援 DOCTYPE 的瀏覽器切成標準模式
但是對 Opera 7.0 之前的版本,或 IE6 之前的版本無效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional
IE6+/WinIE5+/Mac 切成標準模式。
使第一代 Gecko 瀏覽器(Mozilla 1.0Netscape 6)切成標準模式。
使第二代 Gecko 瀏覽器(Mozilla 1.01Netscape7+Chimera 0.6+)切成
近乎標準模式。
Opera 7.0 之前的版本,或 IE6 之前的版本無效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Transtitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset
IE6+/WinIE5+/Mac 切成標準模式。
使第一代 Gecko 瀏覽器(Mozilla 1.0Netscape 6)切成標準模式。
使第二代 Gecko 瀏覽器(Mozilla 1.01Netscape7+Chimera 0.6+)切成
近乎標準模式。
Opera 7.0 之前的版本,或 IE6 之前的版本無效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Frameset//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1
此規格等同於 Strict,可讓所有支援 DOCTYPE 的瀏覽器切成標準模式
但是對 Opera 7.0 之前的版本,或 IE6 之前的版本無效。
<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.1EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">

HTML 4.01 Strict
會讓 IE 切成標準模式,新版的 Gecko 切成近乎標準模式。
<!DOCTYPE html PUBLIC "-/W3C//DTD HTML 4.01//EN"
"
http://www.w3.org/TR/html4/strict.dtd">

但若用完整的 HTML 4.0 DOCTYPE,卻會使 IE 跟 Gecko 切成相容模式!

所以講了這麼多,目前的最佳解就是採用 XHTML (Transitional)。


  • 您可能有興趣的文章:

  • DOCTYPE使用方法
  • W3C教學文件
  • vsy_haha 發表於樂多回應(2)引用(0)網頁編寫編輯本文
    樂多分類:網路/3C │昨日人次:10 │累計人次:6664
    Ads by Roodo! 

    引用URL

    http://cgi.blog.roodo.com/trackback/40735
    回應文章
    The desks are to be violated.
    | 檢舉 | Posted by Eufrasia at 2009年12月30日 02:40
    He is employued.
    | 檢舉 | Posted by Adelardo at 2010年01月10日 07:55