隨筆-159  評(píng)論-114  文章-7  trackbacks-0
          今天想在網(wǎng)頁(yè)中加一個(gè)隨著滾動(dòng)的廣告吧,竟然郁悶了一下午!原來(lái)因?yàn)榫W(wǎng)頁(yè)中一句不起眼的語(yǔ)句。

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">

          這會(huì)導(dǎo)致js無(wú)法運(yùn)行!

          ========================================================

          指定了 HTML 文檔遵循的文檔類(lèi)型定義(DTD)。

          Microsoft? Internet Explorer 6 的新增內(nèi)容
          你可使用此聲明將 Internet Explorer 6 及以后版本切換到標(biāo)準(zhǔn)兼容模式下。

          語(yǔ)法

          HTML  頂級(jí)元素  可用性 "注冊(cè)//組織//類(lèi)型 標(biāo)簽//定義  語(yǔ)言""URL"

          可能值

          頂級(jí)元素 指定 DTD 中聲明的頂級(jí)元素類(lèi)型。這與聲明的 SGML 文檔類(lèi)型相對(duì)應(yīng)。 HTML 默認(rèn)。HTML。
           
          可用性 指定正式公開(kāi)標(biāo)識(shí)符(FPI)是可公開(kāi)訪(fǎng)問(wèn)的對(duì)象還是系統(tǒng)資源。 PUBLIC 默認(rèn)。可公開(kāi)訪(fǎng)問(wèn)的對(duì)象。
          SYSTEM 系統(tǒng)資源,如本地文件或 URL。
           
          注冊(cè) 指定組織是否由國(guó)際標(biāo)準(zhǔn)化組織(ISO)注冊(cè)。 + 默認(rèn)。組織名稱(chēng)已注冊(cè)。
          - 組織名稱(chēng)未注冊(cè)。Internet 工程任務(wù)組(IETF)和萬(wàn)維網(wǎng)協(xié)會(huì)(W3C)并非注冊(cè)的 ISO 組織。
           
          組織 指定表明負(fù)責(zé)由 !DOCTYPE 聲明引用的 DTD 的創(chuàng)建和維護(hù)的團(tuán)體或組織的名稱(chēng),即 OwnderID。 IETF IETF。
          W3C W3C。
           
          類(lèi)型 指定公開(kāi)文本類(lèi),即所引用的對(duì)象類(lèi)型。 DTD 默認(rèn)。DTD。
           
          標(biāo)簽 指定公開(kāi)文本描述,即對(duì)所引用的公開(kāi)文本的唯一描述性名稱(chēng)。后面可附帶版本號(hào)。 HTML 默認(rèn)。HTML。
           
          定義 指定文檔類(lèi)型定義。 Frameset 框架集文檔。
          Strict 排除所有 W3C 專(zhuān)家希望逐步淘汰的代表性屬性和元素,因?yàn)闃邮奖硪呀?jīng)很完善了。
          Transitional 包含除 frameSet 元素的全部?jī)?nèi)容。
           
          語(yǔ)言 指定公開(kāi)文本語(yǔ)言,即用于創(chuàng)建所引用對(duì)象的自然語(yǔ)言編碼系統(tǒng)。該語(yǔ)言定義已編寫(xiě)為 ISO 639  語(yǔ)言代碼(大寫(xiě)兩個(gè)字母)。 EN 默認(rèn)。英語(yǔ)。
           
          URL 指定所引用對(duì)象的位置。

          注釋

          此聲明必須出現(xiàn)在文檔的起始處,出現(xiàn)在 html 標(biāo)簽之前。

          !DOCTYPE 元素不需要關(guān)閉標(biāo)簽。

          此元素在 Microsoft? Internet Explorer 3.0 的 HTML 中可用。

          你可使用此聲明在 Internet Explorer 6 及以后版本中切換為嚴(yán)格的標(biāo)準(zhǔn)兼容模式。若想打開(kāi)此開(kāi)關(guān),請(qǐng)?jiān)谀愕奈臋n頂部包含 !DOCTYPE 聲明,在聲明中指定合法的標(biāo)簽,在某些情況下,還需要指定定義和/或 URL。下面的表格列出了標(biāo)準(zhǔn)兼容模式的開(kāi)關(guān)情況。 DOCTYPE 出現(xiàn) URL 未出現(xiàn) URL
          未出現(xiàn) DOCTYPE 關(guān) 關(guān)
          HTML (無(wú)版本) 關(guān) 關(guān)
          HTML 2.0 關(guān) 關(guān)
          HTML 3.0 關(guān) 關(guān)
          HTML 4.0 開(kāi) 開(kāi)
          HTML 4.0 Frameset 開(kāi) 關(guān)
          HTML 4.0 Transitional 開(kāi) 關(guān)
          HTML 4.0 Strict 開(kāi) 開(kāi)
          XHTML 開(kāi) 開(kāi)
          XML 開(kāi) 開(kāi)
          無(wú)法識(shí)別的 DOCTYPE 開(kāi) 開(kāi)


          注意 在標(biāo)準(zhǔn)兼容模式下,不能保證與其它版本的 Internet Explorer 保持兼容。當(dāng)打開(kāi)標(biāo)準(zhǔn)兼容模式時(shí),文檔的渲染行為也許與將來(lái)版本的 Internet Explorer 不同。若內(nèi)容本來(lái)就是固定的(如刻錄在 CD 上),則不應(yīng)該使用此模式。

          示例

          下面的例子演示了如何使用 !DOCTYPE 聲明指定文檔遵從的 DTD,并將 Internet Explorer 6 及更高版本切換到標(biāo)準(zhǔn)兼容模式。
          下面例子中的聲明都指定了遵從 HTML 4.0 DTD。第二種聲明指定了“Strict”。第一種聲明沒(méi)有指定。這兩種聲明都將會(huì)把 Internet Explorer 6 及以后版本切換到標(biāo)準(zhǔn)兼容模式。

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">

          下面例子中的聲明都指定了遵從“Transitional”HTML 4.0 DTD。第二種聲明指定了 DTD 的 URL。第一種聲明沒(méi)有指定。第二種聲明將會(huì)把 Internet Explorer 6 及以后版本切換到標(biāo)準(zhǔn)兼容模式。第一種聲明不會(huì)。

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
              "

          ======================================================

          使用正確的doctype聲明

          雖然大多數(shù)Web文檔的頂部都有doctype聲明,但很多人都沒(méi)有注意它。它是在你新建一個(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è)文檔類(lèi)型定義(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è)文檔除了不能通過(guò)代碼校驗(yàn)之外,還有可能無(wú)法在瀏覽器中正確顯示。對(duì)于標(biāo)記不一致的問(wèn)題,瀏覽器相較于校驗(yàn)器來(lái)說(shuō)更寬容。但是,不正確的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ù)模活?lèi)似地,如果doctype聲明指定的是HTML DTD,但文檔包含的是XHTML 1.0 Strict標(biāo)記,同樣是不恰當(dāng)?shù)摹?BR>
          有的時(shí)候,也可以根本不使用一個(gè)doctype聲明。如果沒(méi)有指定有效的doctype聲明,大多數(shù)瀏覽器都會(huì)使用一個(gè)內(nèi)建的默認(rèn)DTD。在這種情況下,瀏覽器會(huì)用內(nèi)建的DTD來(lái)試著顯示你所指定的標(biāo)記。對(duì)于一些臨時(shí)性的、匆忙拼湊的文檔(這種文檔有許多),你確實(shí)可以考慮省略doctype聲明,并接受瀏覽器的默認(rèn)顯示。

          完全可以從頭編寫(xiě)一個(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處理指令(也稱(chēng)為XML prolog):

          <?xml version="1.0" encoding="utf-8"?>

          為了確保網(wǎng)頁(yè)正確顯示和順利通過(guò)驗(yàn)證,使用正確的doctype是關(guān)鍵。與內(nèi)容相反的、不正確的或者形式錯(cuò)誤的doctype是大量問(wèn)題的罪魁禍?zhǔn)住T谖磥?lái)的專(zhuān)欄文章中,我還會(huì)具體解釋如何診斷及糾正這些問(wèn)題。


          ==============================================
          其他關(guān)于這個(gè)問(wèn)題的帖子:
          http://search.teein.com/results.aspx?q=DTD&st=PST&SiteID=29&hl=zh-cn&lu=http%3A%2F%2Fwww.blueidea.com%2Fimg%2Fcommon%2Flogo.gif&rt=%BE%AD%B5%E4%C2%DB%CC%B3%CB%D1%CB%F7%BD%E1%B9%FB&ku=http%3A%2F%2Fwww.blueidea.com%2F



          曾經(jīng)也是網(wǎng)頁(yè)大師,現(xiàn)在也要好好學(xué)學(xué)細(xì)節(jié)問(wèn)題了,呵呵

          http://www.w3cn.org/article/step/2004/26.html







          posted on 2005-11-08 15:40 北國(guó)狼人的BloG 閱讀(403) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大同市| 婺源县| 陇南市| 上蔡县| 深圳市| 万全县| 仁寿县| 灵山县| 静海县| 大丰市| 长泰县| 泾川县| 东至县| 开江县| 康马县| 格尔木市| 大荔县| 志丹县| 正安县| 涟源市| 大洼县| 梅河口市| 固原市| 水城县| 资溪县| 阿拉善左旗| 兰州市| 舞钢市| 宣恩县| 土默特右旗| 合水县| 临清市| 沙田区| 怀远县| 随州市| 白银市| 长沙市| 宾川县| 博客| 集贤县| 绥滨县|