在默認(rèn)情況下,ff和ie的解釋標(biāo)準(zhǔn)是不一樣的,也就是說,如果一個(gè)網(wǎng)頁沒有聲明doctype,它就會(huì)以默認(rèn)的doctype解釋下面的html。在同 一種標(biāo)準(zhǔn)下,不同瀏覽器的解釋模型都有所差異,如果聲明標(biāo)準(zhǔn)不同,不用我說,您自己想就可以了。學(xué)習(xí)網(wǎng)頁標(biāo)準(zhǔn),瀏覽器兼容,從哪里開始您自己決定,但是, 請(qǐng)認(rèn)識(shí)doctype:
一、什么是doctype
doctype是document type(文檔類型)的簡寫,在頁面中,用來指定頁面所使用的xhtml(或者h(yuǎn)tml)的版本。要想制作符合標(biāo)準(zhǔn)的頁面,一個(gè)必不可少的關(guān)鍵組成部分就 是doctype聲明。只有確定了一個(gè)正確的doctype,xhtml里的標(biāo)識(shí)和css才能正常生效。
二、doctype的規(guī)則
doctype聲明的寫法遵循一定的規(guī)則,它指出閱讀程序應(yīng)該用什么規(guī)則集來解釋文檔中的標(biāo)記。在web文檔的情況下,“閱讀程序”通常是瀏覽器或者校驗(yàn)器這樣的一個(gè)程序,“規(guī)則”則是w3c所發(fā)布的一個(gè)文檔類型定義(dtd)中包含的規(guī)則。
每個(gè)dtd都包括標(biāo)記、attributes、properties等內(nèi)容,它們用于標(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。
以下是從手冊(cè)上摘抄的規(guī)則:
語法:
html 頂級(jí)元素 可用性 注冊(cè)//組織//類型 標(biāo)簽//定義 語言u(píng)rl
可能值:
- 頂級(jí)元素:指定 dtd 中聲明的頂級(jí)元素類型。這與聲明的 sgml 文檔類型相對(duì)應(yīng)。 html 默認(rèn)。html。
- 可用性:指定正式公開標(biāo)識(shí)符(fpi)是可公開訪問的對(duì)象還是系統(tǒng)資源。 public 默認(rèn)。可公開訪問的對(duì)象。system 系統(tǒng)資源,如本地文件或 url。
- 注冊(cè):指定組織是否由國際標(biāo)準(zhǔn)化組織(iso)注冊(cè)。 + 默認(rèn)。組織名稱已注冊(cè)。
- 組織名稱未注冊(cè)。internet 工程任務(wù)組(ietf)和萬維網(wǎng)協(xié)會(huì)(w3c)并非注冊(cè)的 iso 組織。
組織:指定表明負(fù)責(zé)由 !doctype 聲明引用的 dtd 的創(chuàng)建和維護(hù)的團(tuán)體或組織的名稱,即 ownderid。 ietf ietf。 w3c w3c。
- 類型:指定公開文本類,即所引用的對(duì)象類型。 dtd 默認(rèn)。dtd。
- 標(biāo)簽:指定公開文本描述,即對(duì)所引用的公開文本的唯一描述性名稱。后面可附帶版本號(hào)。 html 默認(rèn)。html。
- 定義:指定文檔類型定義。
frameset 框架集文檔。
strict 排除所有 w3c 專家希望逐步淘汰的代表性屬性和元素,因?yàn)闃邮奖硪呀?jīng)很完善了。
transitional 包含除 frameset 元素的全部內(nèi)容。
- 語言:指定公開文本語言,即用于創(chuàng)建所引用對(duì)象的自然語言編碼系統(tǒng)。該語言定義已編寫為 iso 639 語言代碼(大寫兩個(gè)字母)。 en 默認(rèn)。英語。
- url:指定所引用對(duì)象的位置
為了獲得正確的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>
三、選擇什么樣的doctype
如上例所示,xhtml 1.0中有3種dtd(文檔類型定義)聲明可以選擇:過渡的(transitional)、嚴(yán)格的(strict)和框架的(frameset)。這里分別介紹如下。
1.過渡的
一種要求不很嚴(yán)格的dtd,允許在頁面中使用html4.01的標(biāo)識(shí)(符合xhtml語法標(biāo)準(zhǔn))。過渡的dtd的寫法如下:
代碼如下:
<!doctype html public -//w3c//dtd xhtml 1.0 transitional//en
2.嚴(yán)格的
一種要求嚴(yán)格的dtd,不允許使用任何表現(xiàn)層的標(biāo)識(shí)和屬性,例如<br/>等。嚴(yán)格的dtd的寫法如下:
代碼如下:
<!doctype html public -//w3c//dtd xhtml 1.0 strict//en
>
3.框架的
一種專門針對(duì)框架頁面所使用的dtd,當(dāng)頁面中含有框架元素時(shí),就要采用這種dtd。框架的dtd的寫法如下:
代碼如下:
<!doctype html public -//w3c//dtd xhtml 1.0 transitional//en
>
使用嚴(yán)格的dtd來制作頁面,當(dāng)然是最理想的方式。但是,對(duì)于沒有深入了解web標(biāo)準(zhǔn)的網(wǎng)頁設(shè)計(jì)者,比較合適的是使用過渡的dtd。因?yàn)檫@種dtd還允許使用表現(xiàn)層的標(biāo)識(shí)、元素和屬性,比較適合大多數(shù)網(wǎng)頁制作人員。
四、需要注意的問題
沒什么特別的,就是一定要將doctype聲明放在xhtml文檔的頂部,上面哪怕多個(gè)html注釋標(biāo)記都不行。
最好示例代碼也加上doctype,否則效果會(huì)有差異。
更多信息請(qǐng)查看IT技術(shù)專欄