最近網路上再度興起了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標準的演進是如此,產品或項目的升級是如此,甚至社會制度的建構也是如此。