[文件] DOCTYPE 是做啥用的

看板Web_Design作者 (檔案清除手 v1.0)時間20年前 (2004/11/04 02:51), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串1/2 (看更多)
看到上頭有人提到 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" "" rel="nofollow">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" "" rel="nofollow">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" "" rel="nofollow">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" "" rel="nofollow">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" "" rel="nofollow">http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd"> HTML 4.01 Strict 會讓 IE 切成標準模式,新版的 Gecko 切成近乎標準模式。 <!DOCTYPE html PUBLIC "-/W3C//DTD HTML 4.01//EN" "" rel="nofollow">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)

140.112.30.67 11/04, , 1F
這篇要推一下
140.112.30.67 11/04, 1F

61.229.50.88 11/04, , 2F
推薦這篇文章
61.229.50.88 11/04, 2F

203.204.197.99 11/05, , 3F
好文必推
203.204.197.99 11/05, 3F

08/06 11:50, , 4F
2009年才看到一推
08/06 11:50, 4F

08/06 11:50, , 5F
啊 還不能推Orz
08/06 11:50, 5F
文章代碼(AID): #11YIYNdV (Web_Design)
文章代碼(AID): #11YIYNdV (Web_Design)