HTML 標準驗證

以前在寫網頁都是從 <html>...</html>, 不知道何時開始, 習慣都會在第一行加上 <!DOCTYPE ...>, 一般都只想到就是要把他宣告成 XHTML, XML, HTML, 後來研究 DTD 後才了解, 原來這一行不是那麼簡單的隨便加一加而已.. XD

加 <!DOCTYPE...> 這行的用意在於說, 一般 Broswer 有自己對 HTML Tag 的解釋, 但是想要符合各種的 Broswer 的話該怎麼辦呢? 於是這就需要統一的規格, 此 <!DOCTYPE...> 就是規範此規格, 所有 Broswer 如果看到此行, 會去看此 URL 的 DTD 規範, 依照此規範去解釋 HTML Tag, 因此就比較不會有不相容的狀況發生, 而此規範通常都是採用 W3C 規定的標準為主.

而目前有哪些 <!DOCTYPE ..> 的宣告, 以下列表取自於A List Apart: Articles: Fix Your Site With the Right DOCTYPE! :

HTML 4.01 Strict, Transitional, Frameset

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

XHTML 1.0 Strict, Transitional, Frameset

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.1 DTD

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

以上寫法, 要就連成一行, 如果要斷行, 必須要在 //EN" 此處斷行.

在撰寫此標準 HTML 時, 經常使用的網站列表:

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Programming。將永久鏈結加入書籤。

HTML 標準驗證 有 8 則回應

  1. Thinker 說道:

    DTD 是用來定義 tag language 的格式,主要是用來驗證文件是否文法上正確。DTD 並不包含 TAG 的 sematic,不能用來解釋 tag,因此和相容性無關。只是,如果你使用比較嚴格的 DTD ,自然驗證文件時,會以比較嚴格的標準檢驗。一旦經過檢查的文件,自然比較出現錯誤的 tag 用法。但,對於 tag 的解釋,卻是存在於 browser 的render ,不受 DTD 影嚮。

  2. Tsung 說道:

    我上面寫的"解釋", 意思指的是"格式", 是我太不會用詞了.. Orz...
    非常感謝您的指點, 讓我對 DTD 又更加了解了~ 🙂

  3. Jason 說道:

    那我想請問一下 設定不同的DocType 除了無法通過文件驗證
    對於網頁展示上 或是應該說使用者在使用網頁上有什麼影響嗎??

  4. Tsung 說道:

    主要影響比較大的會是 IE, IE 會啟動自己的標準, 照它自己的標準, 你會發現頁面出來的樣式會有偏差, ex: 多 幾px 或少 幾px 之類的.

  5. Jason 說道:

    原來如此!! 感謝!!
    但似乎即使加上了DocType , 不同Browser也會有點差異!!~~

  6. Tsung 說道:

    嗯嗯, 加上去只是說, 大家是照這個標準走, 但是同樣一份 w3c 訂出來的 spec, 大家看的跟想的多少會有點不同, 所以寫出來的瀏覽器一些數值或判斷會有些不一樣.
    才會有 javascript/css 在不同瀏覽器有些有問題的狀況, 所以通常我都還會加上 css reset 來做, 把所有東西歸 0 後, 再加上 css base(這個不一定會加), 把標準再統一化一次, 再開始寫~ 😛
    (雖然這樣子還是會有些不同, 但是至少尺寸等等的, 會比較統一, 比較不會有某些瀏覽器突然多幾 px 的狀況.)

  7. Xnet 說道:

    請問, 可以多重宣告嗎?
    EX:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    同時宣告。
    (抱歉,前文貼有 HTML tag 致不能顯示,請格主刪了吧!)

  8. Tsung 說道:

    要多重宣告的話, 那就挑寬鬆的宣告囉~ 🙂

發表迴響