頁面中DOCTYPE的作用。

前幾天,在做一個頁面時,引入了樣式文件,但是不起作用。後來跟蹤發現竟然是DOCTYPE的設置問題。例如下面的HTML:
<div class="testDiv">test
   <table>
      <tr>
         <td>Table Content</td>
      </tr>
   </table>
</div>
在testDiv中設置了字體的樣式,但是瀏覽時(IE6和FireFox1.5),發現test文本已經顯示了testDiv中規定的樣式,但Table Content卻沒有。去掉頁面中的"http://www.w3.org/TR/html4/loose.dtd"設置後,兩文本都按testDiv的樣式顯示了。下面引入一篇對DOCTYPE詳細解釋的文章。

原文作者: 周靖 譯

雖然大多數Web文檔的頂部都有doctype聲明,但很多人都沒有注意它。它是在你新建一個文檔時,由Web創作軟件草率處理的衆多細節之一。

雖然doctype被許多人忽視,但在遵循標準的任何Web文檔中,它都是一項必需的元素。doctype會影響代碼驗證,並決定了瀏覽器最終如何顯示你的Web文檔。


doctype的作用
doctype聲明指出閱讀程序應該用什麼規則集來解釋文檔中的標記。在Web文檔的情況下,“閱讀程序”通常是瀏覽器或者校驗器這樣的一個程序,“規則”則是W3C所發佈的一個文檔類型定義(DTD)中包含的規則。

每個DTD都包括一系列標記、attributes和properties,它們用於標記Web文檔的內容;此外還包括一些規則,它們規定了哪些標記能出現在其他哪些標記中。每個Web建議標準(比如HTML 4 Frameset和XHTML 1.0 Transitional)都有自己的DTD。

假如文檔中的標記不遵循doctype聲明所指定的DTD,這個文檔除了不能通過代碼校驗之外,還有可能無法在瀏覽器中正確顯示。對於標記不一致的問題,瀏覽器相較於校驗器來說更寬容。但是,不正確的doctype聲明經常導致網頁不正確顯示,或者導致它們根本不能顯示


選擇正確的doctype
爲了獲得正確的doctype聲明,關鍵就是讓DTD與文檔所遵循的標準對應。例如,假定文檔遵循的是XHTML 1.0 Strict標準,文檔的doctype聲明就應該引用相應的DTD。另一方面,如果doctype聲明指定的是XHTML DTD,但文檔包含的是舊式風格的HTML標記,就是不恰當的;類似地,如果doctype聲明指定的是HTML DTD,但文檔包含的是XHTML 1.0 Strict標記,同樣是不恰當的。

有的時候,也可以根本不使用一個doctype聲明。如果沒有指定有效的doctype聲明,大多數瀏覽器都會使用一個內建的默認DTD。在這種情況下,瀏覽器會用內建的DTD來試着顯示你所指定的標記。對於一些臨時性的、匆忙拼湊的文檔(這種文檔有許多),你確實可以考慮省略doctype聲明,並接受瀏覽器的默認顯示。

完全可以從頭編寫一個doctype聲明,並讓它指向自己選擇的一個DTD。然而,由於大多數Web文檔都需要遵循由W3C發佈的某個國際公認的Web標準,所以那些文檔通常都要包含以下標準doctype聲明之一:

HTML 2:



HTML 3.2:



HTML 4.01 Strict:

"http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional:

"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset:

"http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1:

"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHTML 1.1 plus MathML plus SVG:

"-//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聲明通常是文檔的第一行,要在標記以及其他文檔內容之前。注意,在XHTML文檔中,doctype的前面偶爾會出現一條XML處理指令(也稱爲XML prolog):



爲了確保網頁正確顯示和順利通過驗證,使用正確的doctype是關鍵。與內容相反的、不正確的或者形式錯誤的doctype是大量問題的罪魁禍首。在未來的專欄文章中,我還會具體解釋如何診斷及糾正這些問題。

用DW設計網頁時,新建一個文件,看代碼最前面總要出現一個下面的東東,
"http://www.w3.org/TR/html4/loose.dtd">
這個是DW自動在網頁文件頁增加了DTD信息.可以刪.
刪除後,瀏覽器會使用的默認DTD.


發佈了0 篇原創文章 · 獲贊 0 · 訪問量 2694
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章