最近网上再度兴起了CSS布局和Table 布局的争论。我最初颇有些不以为然:我原以为CSS 布局的意义早已深入人心,却没想到还有这么多设计师及开发人员持有异议。
静下心来看罢大家的讨论,一番细想,觉得原因可能有两个方面:
所以,我们在推崇CSS布局的同时,无需为了证明它的优越性而把table本身贬得一文不值。日常开发中,也无需激进得完全抛弃table。table本身有语义,该显示数据表格的时候就应该使用<table>;在开发过程中,一些需要权衡成本的场合用table+css的布局也未尝不可。在这方面,很欣赏google 和 facebook 前端工程师们的务实做法。大家可以去关注下facebook 上常见的带半透明阴影的弹出对话框,就是使用<table>来制作的,同样非常的精妙。
这一番的争论,结合近年来Web标准的发展,让我开始思考Web开发中改良和改革的区别。
XHTML 2试图直接进化到XML,宣布与HTML的决裂。这曾经让我这个传统的HTML开发者感到恐慌。而当我看到WHATWG组织提出HTML5(最终被W3C认可)的时候,它的温良的改进让我感觉亲切得多,事实也证明,HTML5正越来越向我们走进。而Douglas Crockford甚至觉得HTML5都太猛烈了,提出了HTML 4.2的改良方案。
再看JavaScript, ECMAScript 4 将JavaScript 改得天翻地覆,所幸技术委员会在最终阶段回归理智,重新提出的向下兼容的ESMAScript 3.1 显然得到更多真正战斗在一线的开发人员的认可。
改良,而非血淋淋的改革,也许才是推动技术发展的更实际、更合情合理的方式。Web标准的演进是如此,产品或项目的升级是如此,甚至社会制度的建设亦如此。