[Other]為何不要用Table排版

[Other]Why tables for layout is stupid

這是一篇使用Table甲賽的勸世文:Why tables for layout is stupid,我想這一類的問題已經談到快爛掉了,但究竟是為什麼,下方我們來討論一下吧。

 

通常我們不希望在網頁中使用太多的Table,大多是效能考量,下面是它的論點:

  • mixes presentational data in with your content.
    • This makes the file sizes of your pages unnecessarily large, as users must download this presentational data for each page they visit.
    • Bandwidth ain't free.
  • This makes redesigns of existing sites and content extremely labor intensive (and expensive).
  • It also makes it extremely hard (and expensive) to maintain visual consistency throughout a site.
  • Table-based pages are also much less accessible to users with disabilities and viewers using cell phones and PDAs to access the Web.

 

用Table排版會多比較多的Table,因為要搭配TR、TD,Tag增多,某種程度會提高流量;維護上也較難維護,而且在行動裝置上檢視起來也不是那麼的OK(不確定,還沒接觸),所以他很建議使用CSS+DIV來取代Table,但實際這樣改過的人應該都知道其實要將所有的排版都用CSS+DIV來做,其實有時會需要多做許多功,若非必要,我們多多少少還是會用一些Table來排版。

 

上頭還有幾個沒提到的點,跟Client端的CPU執行效率關聯度較高:

1.Table Render時要render到</Table>才會出現整個Table的內容,Render的速度與Client端的CPU有關聯,較慢的電腦可能看到空白畫面的時間會較長

2.Table如果沒有針對每個TD設定Width,則會在Client端Render時才算出適當的Width,而這個過程也都要吃CPU資源

之前我們有個系統的Server Control是以Table做為最外層的排版,結果有支程式有200多個欄位,在CPU較差的電腦上跑起來可真是慘不忍睹,後來經過一些調整與修改後,效率提升的成果非常顯著,大概快了5倍左右,挺驚人的。

 

參考資料:

Why tables for layout is stupid

Load Time Tip:Speed Up Those Tables

13 Reasons Why CSS Is Superior to Tables in Website Design

Tables vs CSS: PROS and CONS - 15 points to consider before choosing a traditional table website or a CSS tables website

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。