DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> WEB網站前端 >> 前端技巧 >> html中Div與table的區別(各方面細節探討)
html中Div與table的區別(各方面細節探討)
編輯:前端技巧     
1:速度和加載方式方面的區別

div 和 table 的差異不是速度,而是加載方式,速度只能是指網絡速度,如果速度足夠快,是沒有差異的:

div 的加載方式是即讀即加載,遇到 <div> 沒有遇到 </div> 的時候一樣加載 div 中的內容,讀多少加載多少;table 的加載方式是完成後加載,遇到 <table> 後,在讀到 </table> 之前,table 中的內容不加載,或者傳輸中斷了(document.onload()事件)的時候加載,這是因為TABLE牽涉到多行多列問題,所以只有當TABLE所有內容加載完畢,IE才知道該怎麼顯示

2:在網頁應用中的差別

如果頁面首尾加 table ,那麼必須等整個頁面讀完了才加載

如果頁面首尾加 div ,無任何影響

3:DIV與Table布局在大型網站的可用性比較

DIV與TABLE本身並不存在什麼優缺點,所謂web標准只是推薦的是正確的使用標簽,好比說:DIV用於布局,而TABLE則本來就是轉二維數據的。讓TABLE做該做的事,並不是說頁面裡不出現TABLE就是多麼多麼牛。

用DIV進行排版的優勢就是我不說,大家應該都比較清楚。DIV是標准,是大勢所趨,但並不意味著所有的頁面都適合用它來做。

中國的門戶和國外的有很大的區別,中國網民並不喜歡信息量少的頁面,YAHOO到了中國頁面上的內容就多了不少,而上次改為簡潔的頁面後訪問量下降的厲害以至於沒過幾天就又改了回來。正式由於中國的國情造就了搜狐、新浪這樣門戶。

為什麼DIV不適合他們?下面我從幾個方面來逐一說明:

精簡代碼:

大家都說DIV的布局精簡代碼,但是用DIV替代TABLE所節約的代碼又被CSS(樣式)所占用,而這些樣式大多用於控制DIV的排版布局。那你會說了,CSS可以放在外部重用啊,要想得到這個問題的答案請往下看。

重用性與下載量:

統一使用一個.css的樣式表文件,可以實現修改一次,全站修改的效果,這樣使得維護的成本更低。但是請大家換一個角度想,如果所有頁面在加載時都要訪問一個文件,那這個文件每天的下載量,特別時在搜狐、新浪的網站平台上將達到幾億次,這就需要後面有很多台前端web服務器在做支撐,那後台的成本無形中也提高了很多。如果後台支撐沒有做好,那麼頁面就會出現花屏,之前所作的工作也是白費。很多人會問,這樣的幾率太小了。我們所作的工作就是為了避 免這一兩次意外的發生,如果意外發生了,對於門戶後果將是不堪設想的。

HTTP通訊:

統一的樣式表文件采用外部調用的形式,這樣每次加載單個頁面都會多一次對服務器的http請求服務器都會增加一次響應,這樣對前端web服務器 會是很大的消耗。而原來很長時間都是將css和js寫在頁面前端(大家可以看看sohu和sina的頁面,大多都是采用這樣的形式),而不是作為外部調用 的形式,也是為了盡量避免給服務器增加消耗。

頁面緩存:

每次用戶訪問的頁面,都會在浏覽器緩存中保存一定時間,以保證用戶下次再訪問該頁面時能夠大大提高頁面顯示速度。而每次修改都會使頁面重新下載,對於每個外部導入的樣式文件也是如此,如果CSS文件修改,那麼訪問網站的每一個頁面都會重新下載,而以往的將樣式寫在頁面中的方式,只是修改的頁面需要重新下載。

兼容性:

對於CSS(樣式表)並不是所有浏覽器的所有版本都支持的很好,比如IE5以前的浏覽器對於CSS的支持就不是很好。而現在使用IE5以前版本 浏覽器的用戶不在少數,這樣就使得在頁面制作的過程中需要針對不同浏覽器版本進行測試,以保證兼容性,無形中也增加很多工作量(至少我接觸的開發人員制作 div頁面比table頁面的標准時間要長一些)。

橫切與延展性:

橫切——傳統的布局方式為了使頁面下載的更快,把頁面自上而下分成若干個塊,但是往往采用DIV進行布局的頁面都會出現這樣的情況,由於每塊中間欄或者其他欄內容條數不固定導致兩邊欄目沒有同時自適應,而出現留白。

以上我們只是討論某一技術在某一領域的可用性,而非技術本身。

說了這麼多並不是說DIV這種布局方式不好,而是說我們應該正確的看待Table在以內容為基礎的大型門戶中的作用,而不是人雲亦雲。之所以 DIV的布局方式沒有在大型網站應用,不是說門戶沒有用DIV是技術落後,是裡面的人沒有前瞻性,而是多種原因決定的。網易之所以全部采用DIV的方式是因為內容並不是他們主攻方向。而對於其他門戶來說,這樣的決策是要靠時間來驗證的。只是現在這個時機還不成熟而已。

4:DIV+CSS

而現在我認為DIV +CSS並不是字面上的含義那麼簡單,而有兩重內在含義:

1、結構與表現分離,用DIV完成結構,用CSS控制表現,這樣帶來的好處非常多,DIV精簡了頁面,提高了靈活性。而精通CSS的設計師能避免DIV的重復嵌套,從而大大提高頁面加載速度,以及站點的可以維護性。

2、選用DIV 來配合CSS的原因,CSS 的核心是 “盒子模型”,而沒有哪個標簽能比DIV更好的诠釋“盒子模型”的精髓,TABLE的結構過於復雜,並不能很好的做到這一點,雖然TABLE+CSS也是一種選擇,但別忘了DIV還有另外一個優勢,浮動層疊,而且用TABLE進行布局的網站是不能通過W3C驗證的。

其實DIV的好處還遠遠不止這些,例如彈性布局,用戶自定義布局,DIV都展現出不可思議的靈活性,而富有語義的結構對搜索引擎的友好度也比TABLE要來的高,更不用說跨平台的應用。DIV+CSS為我們提供了一個優雅而規范的技術框架,讓我們能用最少的重復勞動,完成更多更美觀的頁面,從而提升整個團隊的效率,甚至改變長期以來網頁設計師與網頁程序員無法同步工作的問題。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved