Skip to main content

是時候放棄 Transitional DOCTYPES 了

阿恆's 的頭像

Jack PickardAccessites.org 發表了一篇文章,建議大家以後在 HTML 中放棄使用 Transitional DOCTYPES。

HTML 的第一行是用來表示所使用的 HTML 版本,使用 Strict DTD 表示檔案中沒有「不建議使用」的 element 和 attribute,使用 Transitional DTD 表示裡面含有這些 element 或 attribute。對於一直有人倡議推廣 Strict DTD,部分人的回應是:「這是我的網站,我喜歡怎樣便怎樣。」

Jack 告訴我們不再使用 Transitional DTD 的理由:

首先,W3C 的 Transitional DOCTYPE 中是如此建議的。你或者沒有閱讀過這份官方文件(恐怕世上沒有多少人真的讀過 DOCTYPE 文件),但可以告訴你,Transitional DOCTYPE 正是建議我們儘可能不要使用 Transitional DTD,應該使用 Strict DTD。

此外,Strict DTD 把內容和表達明確分開。以下是 Strict DOCTYPE 禁止使用的 element:

  • basefont
  • font
  • center
  • applet
  • dir 及 menu
  • isindex
  • s 及 strike
  • u

透過其他 element 或者使用 CSS 都可以達到以上elements 的效果,至於被禁止的 attribute 例如 align、bgcolor、border、clear 等,亦可以透過 CSS 來達到,既然我們可以用 Strict DTD 來達到 Transitional DTD 的效果,同時又可以把內容和表達分開,為何還需要 Transitional DTD?

align的功能並不能完全能使用簡單的css達到 例如<c

align的功能並不能完全能使用簡單的css達到

例如<center><div>1</div></center>

可以把div這方塊置中

但不可以用<div style="text-align:center">1</div>

那只是文字

即使使用margin:0 auto,部份(如ie)瀏覽器是會出錯

也很古怪(畢竟只是要他置中,寫到邊界好像說不通)

所以我認為那些古老的屬性也很好用,簡單易用易明,所有瀏覽器都支援

 

另外,對於以前的frameset,用什麼方法來取代都不可以輕易成功,卻是,dtd限制了,又不提供解決方法,只是不斷叫別人改掉

發表新回應

  • 自動斷行和分段。
  • Images can be added to this post.

更多關於格式選項的資訊