作者NelsonT (檔案清除手 v1.0)
看板Web_Design
標題[文件] DOCTYPE 是做啥用的
時間Thu Nov 4 03:16:10 2004
看到上頭有人提到 DTD,就來寫些跟 DTD 的東西吧:)
好久以前的某個時候,瀏覽器們終於明白支援 Web 標準是一定要的啦,
問題是,新瀏覽器要如何才能兼顧 Web 標準與不合標準的網站呢?
DOCTYPE 就是這種判斷機制的開關。
若網頁開頭有 DOCTYE,代表它會符合標準,所以瀏覽器要依 W3C 的規格來讀網頁,
反之,就用舊的方法處理網頁。
(一直到 2000 年,瀏覽器們才開始採用這機制。)
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+/Win 及 IE5+/Mac 切成標準模式。
使第一代 Gecko 瀏覽器(Mozilla 1.0,Netscape 6)切成標準模式。
使第二代 Gecko 瀏覽器(Mozilla 1.01,Netscape7+,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+/Win 及 IE5+/Mac 切成標準模式。
使第一代 Gecko 瀏覽器(Mozilla 1.0,Netscape 6)切成標準模式。
使第二代 Gecko 瀏覽器(Mozilla 1.01,Netscape7+,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)。
--
╭───────我收集的免費軟體─────────╮
│
http://www.csie.nctu.edu.tw/~chtai/software.php │
╰────────────────────────╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.89.77
※ 編輯: NelsonT 來自: 140.113.89.77 (11/04 03:16)
1F:推 TKirby:這篇要推一下 140.112.30.67 11/04
2F:推 eye12006:推薦這篇文章 61.229.50.88 11/04
3F:推 ilovekebi:好文必推 203.204.197.99 11/05
4F:→ nosql:2009年才看到一推 08/06 11:50
5F:→ nosql:啊 還不能推Orz 08/06 11:50