Chen Yangjian's Blog

Carpe diem - Seize the day

事关大局:Table vs. CSS

| Comments

写到一半,点到书签栏上了,只好再写过。

不知道此事缘起是啥,但是最近在 proggit 上争得很是火热。有高屋建瓴走道德路线的,也有实用主义者特地建站摇旗的(Give Up And Use Tables)。所以难怪有人要跳出来感慨这个世界太疯狂了。

建议使用 table 来布局的童鞋们的论据很简单,CSS 在布局处理上太弱了。使用 CSS 将网站跨浏览器完美布局几乎是不可能完成的任务。还有人特地作了调查,主流网站中并不乏使用 table 布局者,比如 Google、Microsoft、YouTube 等等。远的不说,看看 Struts2 生成的表单布局,再看看 Google 登陆框的表单布局,也都是 table 搞掂。那些用 p 包装、用 span 标签 float 来 float 去,或者一律另起一行(WordPress 的登陆、留言等表单),等等,都没有一个 table 来得直接。

与其花费近一个小时的时间使用纯 CSS hack 来 hack 去,不如使用 table 几分钟搞掂。这便是网站 Give Up And Use Tables 的主题思想。如此一来你还有时间去给自己买个甜圈呢,它说。

然而反对者的态度也很坚决,他们对 Should I Use Tables For Layout? 这一问题给出了奸腚的答案,去看该网页的代码就知道了。有高屋建瓴者特地在道德上鄙视了用 table 偷懒的童鞋们。然而,内容与形式分离(separating content from presentation),在浏览器纷争,标准实现不一面前,都有点变成陈词滥调的意思了。虽然 CSS 实在是太弱了捏…… 不过据传,IE8 将给 CSS 加入 table 属性,到时可能会方便些些……

有和稀泥的把 Adobe 也拉下水了。

而作为一个实用主义者,本着能偷懒就偷懒的态度,我也认为在 CSS 上纠结太久没有意义。前面提到的道德卫道士的论据是,CSS 作为一项促进 Web 发展的技术,不应被放弃,在布局上退回 table 是倒退之类。然而网络还没有到他想象的程度,在中国这等卧虎藏龙之地,frontpage、Dreamweaver 流水线生产的 IE only 的网站一抓一把。而 HTML/CSS 在内容、形式分离上也尚未成熟。标准的指定速度、浏览器的支持程度,都是问题。

不过话说回来,你的页面真的就那么复杂,一定要用表格才能画出来吗?

Comments