最近網路上再度興起了CSS版面和Table 版面的爭論。我最初頗有些不以為然:我原以為CSS 佈局的意義早已深入人心,卻沒想到還有這麼多設計師及開發人員持有異議。
靜下心來看罷大家的討論,一番細想,覺得原因可能有兩個面向:
- 一方面,IE6陰魂不散,讓Web開發成本居高不下。網路上曾經有一個統計,數據顯示Web開發人員針對IE6的投入/產出比是最低的。相信大多數前端工程師都有被IE6折磨得咬牙切齒的經驗。與其那般痛苦的用CSS佈局,不如用table 來的爽快方便。
- 另一方面,我發現前端工程師們越來越務實、注重效率。 CSS2以及CSS3的許多新特性遲遲未能廣泛普及,而Web標準佈道者們所津津樂道的CSS的優點,在照進現實時又經常會遭遇妥協。儘管我一直以Web標準佈道為己任,但也不得不同意:table的瀏覽器相容性是最好的;table 佈局對於設計師來說更容易上手。 就國內環境而言, table切圖依舊是製作入口網站專題或電子商務網站促銷頁面的最常用方式,存在即有它的合理性。
所以,我們在推崇CSS佈局的同時,無需為了證明它的優越性而把table本身貶得一文不值。日常開發中,也無需激進得完全拋棄table。 table本身有語義,顯示資料表的時候就應該使用
;在開發過程中,一些需要權衡成本的場合用table+css的佈局也未嘗不可。在這方面,我很欣賞google 和facebook 前端工程師們的務實做法。大家可以去關注下facebook 上常見的帶有半透明陰影的彈出對話框,就是使用來製作的,同樣非常的精妙。這一番的爭論,結合近年來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標準的演進是如此,產品或項目的升級是如此,甚至社會制度的建構也是如此。
原文: http://ued.taobao.com/blog/2009/06/24/web_dev_improve/