新聞來源:COMSHARP
身為一個身處2008 年底的Web 設計師,你是否好意思承認自己的程式碼中使用了Table,如果是,你是一個有勇氣的人,Web 設計是個奇怪的行業,你可以將自己的網站設計得像晚報的分類廣告,或是樓道裡的開鎖廣告,但千萬別讓人知道你使用了Table,在你的源代碼中發現Table 就像一個銷售被人掀起褲腳發現穿了白襪子一樣。
Table 是如此醜陋,臃腫,即使只顯示一段簡單的內容,你也需要
這三個基本的標籤,每個標籤裡面還要加上一堆亂七八糟的屬性,不像 ,既簡單,又整潔,又時尚,它和CSS 珠聯璧合,琴瑟和諧,它們構成最完美的Box 模型,他們象現實中的箱子,你把東西放進去,然後,很自由地對他們進行排列,厭煩了一種佈局,沒關係,簡單地改動一下CSS 定義,一種全新的佈局便誕生了;不像Table,Table 像食堂裡的餐具櫃,一排排,一列列,土里土氣,油膩膩的,像我們的父輩,邋遢,什麼都往家裡拿,胡亂堆在角落裡,如果Div 是小資,Table 就是老三屆,他們不屬於這個時代。 也就是近幾年的事,至多不過三五年,W3C是一個人人都認為重要但人人都不喜歡的組織,他們的官方網站十分醜陋,我敢說平生沒見過這麼醜陋的網站,但他們的網站是為數不多的可以通過全部W3C標準驗證的網站,這意味著,他們的網站在語法上,在結構上,在可訪問性上是完美的,雖然依舊十分醜陋。不過這是笑談,W3C非常重要,否則微軟會把全體Web 開發工程師帶到萬劫不復的境地,還好,Netscape 死後,涅磐出Firefox,而Opera 在Firefox 橫空出世之後雖然沒得到任何好處,至少得到了精神上的支持,看到沒,終於有大哥出來收拾你。賈伯斯復出後,蘋果重返昔日的光芒,這時人們才知道世界上還有一個叫做Safari 的瀏覽器,所有這一切加在一起,讓W3C 真正有了存在的必要。 W3C 說,Table 可以用來容納文字,格式文字,圖片,鏈接,表單,以及其它Table ... 但是,Table 不應該單純用來做網頁佈局(Tables should not be used purely as a means to layout document content ),理由是,當Web 被非視覺化裝置渲染的時候,Table 會出現問題,他們指定是螢幕閱讀器以及點字瀏覽器,另外,Table 在大型顯示裝置上會強迫使用者左右滾動,因此,Web 設計者應該使用CSS 而不是Table。請參閱W3C HTML 4.01 關於Table 的定義。 W3C 說這段話的時候,是1999年12月24日,那時儘管CSS 早已誕生,但並沒有多少人使用,最初的Web 像一個在線版的文檔,並沒有成為現在這樣的平台,不需要過度過度考慮佈局問題,隨著互聯網第一次泡沫的形成,湧現出大量的門戶網站,門戶網站是Table 佈局的始作俑者,因為他們的首頁比一整份報紙的所有版面拼接在一起還複雜,Table 在這方面十分順手,結合colspan 和rolspan,你幾乎能夠實現任何複雜的版面。 這種佈局風格在2000年代初,一直到中期仍然十分流行,尤其國內,在大為美的潛意識下,人們把所有能塞到一個頁面的東西都塞進了首頁,Table 就像一個舊時代的管家,把所有東西雖不能井有序,但至少是一樣不少地編排起來。然而這樣的Web 終於到了讓人厭惡的地步,隨著搜索,RSS 訂閱,以及以博客為代表的個性化Web 的出現,人們有更多渠道獲得信息,而不必去訪問那幾個讓人幾乎要暈過去的門戶的首頁,於是出現了一種清新的,輕量的Web 風,使用更簡單的佈局,更明快的配色,大圖標,大Banner,以及更容易閱讀的大字體,同時,在這個時候,CSS 已經非常成熟,而Firefox, Opera, Safari 為代表的瀏覽器,在遵守W3C 標準方面要遠遠好過IE,人們終於認識到CSS 的威力。因為CSS 在佈局上,其核心是一個Box 模型,人們必須為CSS 找一個可以依附的容器物件。 Div 成為幸運者一方面因為它天生就是Box 的最佳原型,在語義上,Div 代表頁面的一個區域,在外形上,它四四方方,更重要的是,它不像 或< a> 那樣事先已經被賦予特殊的語意(雖然它們也能用於Box 模型);另一方面,則出於人們對Table 統治一個臃腫時代的憎惡,一個時代的結束,繼任者都會努力抹去舊時代的痕跡,那些舊時代的象徵或代表的命運多半如此,人們並不是簡單地忘卻它們,而是斷然劃清界限。 Table 的一切不公平待遇就此展開。為什麼說不公平,W3C 不建議Table 佈局的時候,只說要用CSS 代替,這是什麼意思,Table 不支援CSS 嗎?當然支持,而且,由於Table 作為老牌的HTML 對象,它的地位曾如此重要,任何瀏覽器都對Table 提供了最完美的支持,包括CSS 支持。當人們擁抱Div 的時候,似乎忘記了Table 也是Box,而且是一個擁有多個內格的Box,Table 作為一個整體,和Div 在Box 模型方面沒有任何區別,而它的內格,除了Margin 之外,仍然是一個Box,內格不含Margin 概念這是應該理解的。 Div 很優秀這不必說,然而當人們說Div + CSS 的時候,似乎暗示著Table 無法CSS,這是天大的誤會。 Div 支援的所有CSS 屬性,Table 全部支持,事實上,在Div 大紅大紫之前,那些Div 的早期採用者曾信心不足地表示,Table 能做到,Div 都能,而他們也為自己的話付出了代價,企圖在Div 中實現垂直居中的人明白我的意思,企圖在IE6 中不經CSS Hack 而實現100% Div 佈局的人更明白我的意思。 100% Height 問題,幾個Div 之間的寬度自適應問題,相信任何從事Div + CSS 設計的人會遇到。 Table 在這方面的優勢並不是因為它本身多麼優秀,而是因為它老牌,沒有瀏覽器敢忽視,也因為它的特性原本如此,人們發明表格,是因為希望數據顯示得整齊,就這麼簡單。然而,為什麼Table 後來背上那麼多的惡名呢? Div 擁護者對Table 的責備不外乎以下幾條。
|