XHTML Transitional VS XHTML Strict
作者: its
|
發布: 2007/12/21 (上午 10:59)
|
閱讀: 28495
|
評論: 0
|
靜態地址
|
內容源碼
談到 Web 標準,公認的觀點是 XHTML 要比 HTML 更嚴密,因為 XHTML 結構更嚴謹。 XHMTL 有兩種標準,XHTML Transitional 和 XHTML Strict。正象它們各自的名字所展示的那樣,XHTML Transitional 用來對舊代碼進行過度,而 XHTML Strict 是缺省標準,新的網頁應直接使用該標準,XHTML Strict 鼓勵結構層和展示層分離,原先混雜在結構中的展示代碼應使用 CSS 進行分離。
HTML 4 的 Document Type 是這樣定義的:
HTML4.0 DTD 刪除了一些展示屬性和元素,這些展示屬性和元素隨著 CSS 的成熟將被 W3C 排除。網頁作者應盡可能使用 Strict DTD,但在需要支持展示屬性和元素的場合仍然可以使用 Transitional DTD 。
使用 Strict DOCTYPE 另外的好處是,可以讓瀏覽器使用最嚴格,最標準的頁面渲染模式進行頁面輸出,這可以顯著提高頁面渲染效率。Tommy Olsson 在向 Tommy Olsson 提問的10個問題中,總結了 Strict 標準優于Transitional 標準的理由:
在我看來,使用 Strict DTD, 不管是 HTML4.01 Strict 還是 XHTML 1.0 Strict,對未來的 Web 品質來講都至關重要,Strict DTD 要求結構和展示分離,這樣將使網站更易于維護。
對那些將應用 Web 標準,使用合法的,語意的 Web 的人來說,理解 Transitional 和 Strict 之間的區別是非常重要的。Transitional 和 Strict 之間的完整區別列表可參閱 XHTML: Differences between Strict & Transitional, Comparison of Strict and Transitional XHTML, 以及 XHTML1.0 Element Attributes by DTD.
有一些差別,對于從 Transitional 到 Strict 的轉換者來說,可能帶來不少問題,下面是常見的幾個:
在 Strict DOCTYPE 中被禁止的對象:
- center
- font
- iframe
- strike
- u
在 Strict DOCTYPE 中被禁止的屬性:
- align (但對 table 有關的項目仍然允許: col, colgroup, tbody, td, tfoot, th, thead, and tr)
- language
- background
- bgcolor
- border (allowed on table)
- height (allowed on img and object)
- hspace
- name (在 HTML 4.01 Strict 中允許,但在 XHTML 1.0 Strict 中不可用于 form 和 img)
- noshade
- nowrap
- target
- text, link, vlink, and alink
- vspace
- width (在 img, object, table, col, 和 colgroup 中允許)
內容模型的差別
在內容模型方面,Transitional 和 Strict 之間最大的差別是,blockquote, body, form 對象只可以包含 block 級別的對象,如:text 和 image 不允許直接位于 body 對象下,需要包含在 block 級別的對象,如 p 和 div 中。
邁向 Strict 將展示層交給 CSS
在從 Transitional 到 Strict 的過度中,不妨遵守這樣一個技巧,時刻考慮你目前的對象是什么,而不是看上去什么樣。先考慮語意,最后再關心外觀的事。
本文國際來源
Transitional vs. Strict Markup (by Roger Johansson)
|