XHTML Transitional VS XHTML Strict
作者: its
|
发布: 2007/12/21 (10:59)
|
阅读: 40604
|
评论: 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)
|