對(duì)于網(wǎng)站開發(fā)而言,我們平時(shí)在做頁(yè)面的時(shí)候可能會(huì)忽視這一點(diǎn)(包括鄙人,通常都是懶于不寫而使用瀏覽器默認(rèn)),隨著目前網(wǎng)頁(yè)編碼規(guī)范化熱潮的到來(lái),大家都有必要了解一下這個(gè)細(xì)節(jié),會(huì)有用處的。俗話說沒有規(guī)矩不成方圓呢。
雖然大多數(shù)Web文檔的頂部都有doctype聲明,但很多人都沒有注意它。它是在你新建一個(gè)文檔時(shí),由Web創(chuàng)作軟件草率處理的眾多細(xì)節(jié)之一。雖然doctype被許多人忽視,但在遵循標(biāo)準(zhǔn)的任何Web文檔中,它都是一項(xiàng)必需的元素。doctype會(huì)影響代碼驗(yàn)證,并決定了瀏覽器最終如何顯示你的Web文檔。
doctype的作用
doctype聲明指出閱讀程序應(yīng)該用什么規(guī)則集來(lái)解釋文檔中的標(biāo)記。在Web文檔的情況下,“閱讀程序”通常是瀏覽器或者校驗(yàn)器這樣的一個(gè)程序,“規(guī)則”則是W3C所發(fā)布的一個(gè)文檔類型定義(DTD)中包含的規(guī)則。
每個(gè)DTD都包括一系列標(biāo)記、attributes和properties,它們用于標(biāo)記Web文檔的內(nèi)容;此外還包括一些規(guī)則,它們規(guī)定了哪些標(biāo)記能出現(xiàn)在其他哪些標(biāo)記中。每個(gè)Web建議標(biāo)準(zhǔn)(比如HTML 4 Frameset和XHTML 1.0 Transitional)都有自己的DTD。假如文檔中的標(biāo)記不遵循doctype聲明所指定的DTD,這個(gè)文檔除了不能通過代碼校驗(yàn)之外,還有可能無(wú)法在瀏覽器中正確顯示。對(duì)于標(biāo)記不一致的問題,瀏覽器相較于校驗(yàn)器來(lái)說更寬容。但是,不正確的doctype聲明經(jīng)常導(dǎo)致網(wǎng)頁(yè)不正確顯示,或者導(dǎo)致它們根本不能顯示。
選擇正確的doctype
為了獲得正確的doctype聲明,關(guān)鍵就是讓DTD與文檔所遵循的標(biāo)準(zhǔn)對(duì)應(yīng)。例如,假定文檔遵循的是XHTML 1.0 Strict標(biāo)準(zhǔn),文檔的doctype聲明就應(yīng)該引用相應(yīng)的DTD。另一方面,如果doctype聲明指定的是XHTML DTD,但文檔包含的是舊式風(fēng)格的HTML標(biāo)記,就是不恰當(dāng)?shù)?;類似地,如果doctype聲明指定的是HTML DTD,但文檔包含的是XHTML 1.0 Strict標(biāo)記,同樣是不恰當(dāng)?shù)摹?/p>
有的時(shí)候,也可以根本不使用一個(gè)doctype聲明。如果沒有指定有效的doctype聲明,大多數(shù)瀏覽器都會(huì)使用一個(gè)內(nèi)建的默認(rèn)DTD。在這種情況下,瀏覽器會(huì)用內(nèi)建的DTD來(lái)試著顯示你所指定的標(biāo)記。對(duì)于一些臨時(shí)性的、匆忙拼湊的文檔(這種文檔有許多),你確實(shí)可以考慮省略doctype聲明,并接受瀏覽器的默認(rèn)顯示。
完全可以從頭編寫一個(gè)doctype聲明,并讓它指向自己選擇的一個(gè)DTD。然而,由于大多數(shù)Web文檔都需要遵循由W3C發(fā)布的某個(gè)國(guó)際公認(rèn)的Web標(biāo)準(zhǔn),所以那些文檔通常都要包含以下標(biāo)準(zhǔn)doctype聲明之一:
HTML 2:<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
HTML 3.2:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
HTML 4.01 Strict:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML 1.1 plus MathML plus SVG:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
除了上面列出的doctype聲明,具有特殊要求的一些文檔還使用了其他幾種聲明。
doctype聲明通常是文檔的第一行,要在<html>標(biāo)記以及其他文檔內(nèi)容之前。注意,在XHTML文檔中,doctype的前面偶爾會(huì)出現(xiàn)一條XML處理指令(也稱為XML prolog):<?xml version="1.0" encoding="utf-8"?>
為了確保網(wǎng)頁(yè)正確顯示和順利通過驗(yàn)證,使用正確的doctype是關(guān)鍵。與內(nèi)容相反的、不正確的或者形式錯(cuò)誤的doctype是大量問題的罪魁禍?zhǔn)住?/p>
用DW設(shè)計(jì)網(wǎng)頁(yè)時(shí),新建一個(gè)文件,看代碼最前面總要出現(xiàn)一個(gè)下面的東東,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">這個(gè)是DW自動(dòng)在網(wǎng)頁(yè)文件頁(yè)增加了DTD信息,可以刪。 刪除后,瀏覽器會(huì)使用的默認(rèn)DTD。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)