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