html中Div與table的區(qū)別(各方面細(xì)節(jié)探討)
發(fā)布時(shí)間:2013-06-14 10:54:56 作者:佚名
我要評(píng)論

Div與table的區(qū)別表現(xiàn)在的方面很多比如:速度和加載方式方面的區(qū)別、在網(wǎng)頁應(yīng)用中的差別、DIV與Table布局在大型網(wǎng)站的可用性比較等等,感興趣的朋友可以參考下哈,希望在概念上的理解對(duì)大家有所幫助
1:速度和加載方式方面的區(qū)別
div 和 table 的差異不是速度,而是加載方式,速度只能是指網(wǎng)絡(luò)速度,如果速度足夠快,是沒有差異的:
div 的加載方式是即讀即加載,遇到 <div> 沒有遇到 </div> 的時(shí)候一樣加載 div 中的內(nèi)容,讀多少加載多少;table 的加載方式是完成后加載,遇到 <table> 后,在讀到 </table> 之前,table 中的內(nèi)容不加載,或者傳輸中斷了(document.onload()事件)的時(shí)候加載,這是因?yàn)門ABLE牽涉到多行多列問題,所以只有當(dāng)TABLE所有內(nèi)容加載完畢,IE才知道該怎么顯示
2:在網(wǎng)頁應(yīng)用中的差別
如果頁面首尾加 table ,那么必須等整個(gè)頁面讀完了才加載
如果頁面首尾加 div ,無任何影響
3:DIV與Table布局在大型網(wǎng)站的可用性比較
DIV與TABLE本身并不存在什么優(yōu)缺點(diǎn),所謂web標(biāo)準(zhǔn)只是推薦的是正確的使用標(biāo)簽,好比說:DIV用于布局,而TABLE則本來就是轉(zhuǎn)二維數(shù)據(jù)的。讓TABLE做該做的事,并不是說頁面里不出現(xiàn)TABLE就是多么多么牛。
用DIV進(jìn)行排版的優(yōu)勢(shì)就是我不說,大家應(yīng)該都比較清楚。DIV是標(biāo)準(zhǔn),是大勢(shì)所趨,但并不意味著所有的頁面都適合用它來做。
中國(guó)的門戶和國(guó)外的有很大的區(qū)別,中國(guó)網(wǎng)民并不喜歡信息量少的頁面,YAHOO到了中國(guó)頁面上的內(nèi)容就多了不少,而上次改為簡(jiǎn)潔的頁面后訪問量下降的厲害以至于沒過幾天就又改了回來。正式由于中國(guó)的國(guó)情造就了搜狐、新浪這樣門戶。
為什么DIV不適合他們?下面我從幾個(gè)方面來逐一說明:
精簡(jiǎn)代碼:
大家都說DIV的布局精簡(jiǎn)代碼,但是用DIV替代TABLE所節(jié)約的代碼又被CSS(樣式)所占用,而這些樣式大多用于控制DIV的排版布局。那你會(huì)說了,CSS可以放在外部重用啊,要想得到這個(gè)問題的答案請(qǐng)往下看。
重用性與下載量:
統(tǒng)一使用一個(gè).css的樣式表文件,可以實(shí)現(xiàn)修改一次,全站修改的效果,這樣使得維護(hù)的成本更低。但是請(qǐng)大家換一個(gè)角度想,如果所有頁面在加載時(shí)都要訪問一個(gè)文件,那這個(gè)文件每天的下載量,特別時(shí)在搜狐、新浪的網(wǎng)站平臺(tái)上將達(dá)到幾億次,這就需要后面有很多臺(tái)前端web服務(wù)器在做支撐,那后臺(tái)的成本無形中也提高了很多。如果后臺(tái)支撐沒有做好,那么頁面就會(huì)出現(xiàn)花屏,之前所作的工作也是白費(fèi)。很多人會(huì)問,這樣的幾率太小了。我們所作的工作就是為了避 免這一兩次意外的發(fā)生,如果意外發(fā)生了,對(duì)于門戶后果將是不堪設(shè)想的。
HTTP通訊:
統(tǒng)一的樣式表文件采用外部調(diào)用的形式,這樣每次加載單個(gè)頁面都會(huì)多一次對(duì)服務(wù)器的http請(qǐng)求服務(wù)器都會(huì)增加一次響應(yīng),這樣對(duì)前端web服務(wù)器 會(huì)是很大的消耗。而原來很長(zhǎng)時(shí)間都是將css和js寫在頁面前端(大家可以看看sohu和sina的頁面,大多都是采用這樣的形式),而不是作為外部調(diào)用 的形式,也是為了盡量避免給服務(wù)器增加消耗。
頁面緩存:
每次用戶訪問的頁面,都會(huì)在瀏覽器緩存中保存一定時(shí)間,以保證用戶下次再訪問該頁面時(shí)能夠大大提高頁面顯示速度。而每次修改都會(huì)使頁面重新下載,對(duì)于每個(gè)外部導(dǎo)入的樣式文件也是如此,如果CSS文件修改,那么訪問網(wǎng)站的每一個(gè)頁面都會(huì)重新下載,而以往的將樣式寫在頁面中的方式,只是修改的頁面需要重新下載。
兼容性:
對(duì)于CSS(樣式表)并不是所有瀏覽器的所有版本都支持的很好,比如IE5以前的瀏覽器對(duì)于CSS的支持就不是很好。而現(xiàn)在使用IE5以前版本 瀏覽器的用戶不在少數(shù),這樣就使得在頁面制作的過程中需要針對(duì)不同瀏覽器版本進(jìn)行測(cè)試,以保證兼容性,無形中也增加很多工作量(至少我接觸的開發(fā)人員制作 div頁面比table頁面的標(biāo)準(zhǔn)時(shí)間要長(zhǎng)一些)。
橫切與延展性:
橫切——傳統(tǒng)的布局方式為了使頁面下載的更快,把頁面自上而下分成若干個(gè)塊,但是往往采用DIV進(jìn)行布局的頁面都會(huì)出現(xiàn)這樣的情況,由于每塊中間欄或者其他欄內(nèi)容條數(shù)不固定導(dǎo)致兩邊欄目沒有同時(shí)自適應(yīng),而出現(xiàn)留白。
以上我們只是討論某一技術(shù)在某一領(lǐng)域的可用性,而非技術(shù)本身。
說了這么多并不是說DIV這種布局方式不好,而是說我們應(yīng)該正確的看待Table在以內(nèi)容為基礎(chǔ)的大型門戶中的作用,而不是人云亦云。之所以 DIV的布局方式?jīng)]有在大型網(wǎng)站應(yīng)用,不是說門戶沒有用DIV是技術(shù)落后,是里面的人沒有前瞻性,而是多種原因決定的。網(wǎng)易之所以全部采用DIV的方式是因?yàn)閮?nèi)容并不是他們主攻方向。而對(duì)于其他門戶來說,這樣的決策是要靠時(shí)間來驗(yàn)證的。只是現(xiàn)在這個(gè)時(shí)機(jī)還不成熟而已。
4:DIV+CSS
而現(xiàn)在我認(rèn)為DIV +CSS并不是字面上的含義那么簡(jiǎn)單,而有兩重內(nèi)在含義:
1、結(jié)構(gòu)與表現(xiàn)分離,用DIV完成結(jié)構(gòu),用CSS控制表現(xiàn),這樣帶來的好處非常多,DIV精簡(jiǎn)了頁面,提高了靈活性。而精通CSS的設(shè)計(jì)師能避免DIV的重復(fù)嵌套,從而大大提高頁面加載速度,以及站點(diǎn)的可以維護(hù)性。
2、選用DIV 來配合CSS的原因,CSS 的核心是 “盒子模型”,而沒有哪個(gè)標(biāo)簽?zāi)鼙菵IV更好的詮釋“盒子模型”的精髓,TABLE的結(jié)構(gòu)過于復(fù)雜,并不能很好的做到這一點(diǎn),雖然TABLE+CSS也是一種選擇,但別忘了DIV還有另外一個(gè)優(yōu)勢(shì),浮動(dòng)層疊,而且用TABLE進(jìn)行布局的網(wǎng)站是不能通過W3C驗(yàn)證的。
其實(shí)DIV的好處還遠(yuǎn)遠(yuǎn)不止這些,例如彈性布局,用戶自定義布局,DIV都展現(xiàn)出不可思議的靈活性,而富有語義的結(jié)構(gòu)對(duì)搜索引擎的友好度也比TABLE要來的高,更不用說跨平臺(tái)的應(yīng)用。DIV+CSS為我們提供了一個(gè)優(yōu)雅而規(guī)范的技術(shù)框架,讓我們能用最少的重復(fù)勞動(dòng),完成更多更美觀的頁面,從而提升整個(gè)團(tuán)隊(duì)的效率,甚至改變長(zhǎng)期以來網(wǎng)頁設(shè)計(jì)師與網(wǎng)頁程序員無法同步工作的問題。
div 和 table 的差異不是速度,而是加載方式,速度只能是指網(wǎng)絡(luò)速度,如果速度足夠快,是沒有差異的:
div 的加載方式是即讀即加載,遇到 <div> 沒有遇到 </div> 的時(shí)候一樣加載 div 中的內(nèi)容,讀多少加載多少;table 的加載方式是完成后加載,遇到 <table> 后,在讀到 </table> 之前,table 中的內(nèi)容不加載,或者傳輸中斷了(document.onload()事件)的時(shí)候加載,這是因?yàn)門ABLE牽涉到多行多列問題,所以只有當(dāng)TABLE所有內(nèi)容加載完畢,IE才知道該怎么顯示
2:在網(wǎng)頁應(yīng)用中的差別
如果頁面首尾加 table ,那么必須等整個(gè)頁面讀完了才加載
如果頁面首尾加 div ,無任何影響
3:DIV與Table布局在大型網(wǎng)站的可用性比較
DIV與TABLE本身并不存在什么優(yōu)缺點(diǎn),所謂web標(biāo)準(zhǔn)只是推薦的是正確的使用標(biāo)簽,好比說:DIV用于布局,而TABLE則本來就是轉(zhuǎn)二維數(shù)據(jù)的。讓TABLE做該做的事,并不是說頁面里不出現(xiàn)TABLE就是多么多么牛。
用DIV進(jìn)行排版的優(yōu)勢(shì)就是我不說,大家應(yīng)該都比較清楚。DIV是標(biāo)準(zhǔn),是大勢(shì)所趨,但并不意味著所有的頁面都適合用它來做。
中國(guó)的門戶和國(guó)外的有很大的區(qū)別,中國(guó)網(wǎng)民并不喜歡信息量少的頁面,YAHOO到了中國(guó)頁面上的內(nèi)容就多了不少,而上次改為簡(jiǎn)潔的頁面后訪問量下降的厲害以至于沒過幾天就又改了回來。正式由于中國(guó)的國(guó)情造就了搜狐、新浪這樣門戶。
為什么DIV不適合他們?下面我從幾個(gè)方面來逐一說明:
精簡(jiǎn)代碼:
大家都說DIV的布局精簡(jiǎn)代碼,但是用DIV替代TABLE所節(jié)約的代碼又被CSS(樣式)所占用,而這些樣式大多用于控制DIV的排版布局。那你會(huì)說了,CSS可以放在外部重用啊,要想得到這個(gè)問題的答案請(qǐng)往下看。
重用性與下載量:
統(tǒng)一使用一個(gè).css的樣式表文件,可以實(shí)現(xiàn)修改一次,全站修改的效果,這樣使得維護(hù)的成本更低。但是請(qǐng)大家換一個(gè)角度想,如果所有頁面在加載時(shí)都要訪問一個(gè)文件,那這個(gè)文件每天的下載量,特別時(shí)在搜狐、新浪的網(wǎng)站平臺(tái)上將達(dá)到幾億次,這就需要后面有很多臺(tái)前端web服務(wù)器在做支撐,那后臺(tái)的成本無形中也提高了很多。如果后臺(tái)支撐沒有做好,那么頁面就會(huì)出現(xiàn)花屏,之前所作的工作也是白費(fèi)。很多人會(huì)問,這樣的幾率太小了。我們所作的工作就是為了避 免這一兩次意外的發(fā)生,如果意外發(fā)生了,對(duì)于門戶后果將是不堪設(shè)想的。
HTTP通訊:
統(tǒng)一的樣式表文件采用外部調(diào)用的形式,這樣每次加載單個(gè)頁面都會(huì)多一次對(duì)服務(wù)器的http請(qǐng)求服務(wù)器都會(huì)增加一次響應(yīng),這樣對(duì)前端web服務(wù)器 會(huì)是很大的消耗。而原來很長(zhǎng)時(shí)間都是將css和js寫在頁面前端(大家可以看看sohu和sina的頁面,大多都是采用這樣的形式),而不是作為外部調(diào)用 的形式,也是為了盡量避免給服務(wù)器增加消耗。
頁面緩存:
每次用戶訪問的頁面,都會(huì)在瀏覽器緩存中保存一定時(shí)間,以保證用戶下次再訪問該頁面時(shí)能夠大大提高頁面顯示速度。而每次修改都會(huì)使頁面重新下載,對(duì)于每個(gè)外部導(dǎo)入的樣式文件也是如此,如果CSS文件修改,那么訪問網(wǎng)站的每一個(gè)頁面都會(huì)重新下載,而以往的將樣式寫在頁面中的方式,只是修改的頁面需要重新下載。
兼容性:
對(duì)于CSS(樣式表)并不是所有瀏覽器的所有版本都支持的很好,比如IE5以前的瀏覽器對(duì)于CSS的支持就不是很好。而現(xiàn)在使用IE5以前版本 瀏覽器的用戶不在少數(shù),這樣就使得在頁面制作的過程中需要針對(duì)不同瀏覽器版本進(jìn)行測(cè)試,以保證兼容性,無形中也增加很多工作量(至少我接觸的開發(fā)人員制作 div頁面比table頁面的標(biāo)準(zhǔn)時(shí)間要長(zhǎng)一些)。
橫切與延展性:
橫切——傳統(tǒng)的布局方式為了使頁面下載的更快,把頁面自上而下分成若干個(gè)塊,但是往往采用DIV進(jìn)行布局的頁面都會(huì)出現(xiàn)這樣的情況,由于每塊中間欄或者其他欄內(nèi)容條數(shù)不固定導(dǎo)致兩邊欄目沒有同時(shí)自適應(yīng),而出現(xiàn)留白。
以上我們只是討論某一技術(shù)在某一領(lǐng)域的可用性,而非技術(shù)本身。
說了這么多并不是說DIV這種布局方式不好,而是說我們應(yīng)該正確的看待Table在以內(nèi)容為基礎(chǔ)的大型門戶中的作用,而不是人云亦云。之所以 DIV的布局方式?jīng)]有在大型網(wǎng)站應(yīng)用,不是說門戶沒有用DIV是技術(shù)落后,是里面的人沒有前瞻性,而是多種原因決定的。網(wǎng)易之所以全部采用DIV的方式是因?yàn)閮?nèi)容并不是他們主攻方向。而對(duì)于其他門戶來說,這樣的決策是要靠時(shí)間來驗(yàn)證的。只是現(xiàn)在這個(gè)時(shí)機(jī)還不成熟而已。
4:DIV+CSS
而現(xiàn)在我認(rèn)為DIV +CSS并不是字面上的含義那么簡(jiǎn)單,而有兩重內(nèi)在含義:
1、結(jié)構(gòu)與表現(xiàn)分離,用DIV完成結(jié)構(gòu),用CSS控制表現(xiàn),這樣帶來的好處非常多,DIV精簡(jiǎn)了頁面,提高了靈活性。而精通CSS的設(shè)計(jì)師能避免DIV的重復(fù)嵌套,從而大大提高頁面加載速度,以及站點(diǎn)的可以維護(hù)性。
2、選用DIV 來配合CSS的原因,CSS 的核心是 “盒子模型”,而沒有哪個(gè)標(biāo)簽?zāi)鼙菵IV更好的詮釋“盒子模型”的精髓,TABLE的結(jié)構(gòu)過于復(fù)雜,并不能很好的做到這一點(diǎn),雖然TABLE+CSS也是一種選擇,但別忘了DIV還有另外一個(gè)優(yōu)勢(shì),浮動(dòng)層疊,而且用TABLE進(jìn)行布局的網(wǎng)站是不能通過W3C驗(yàn)證的。
其實(shí)DIV的好處還遠(yuǎn)遠(yuǎn)不止這些,例如彈性布局,用戶自定義布局,DIV都展現(xiàn)出不可思議的靈活性,而富有語義的結(jié)構(gòu)對(duì)搜索引擎的友好度也比TABLE要來的高,更不用說跨平臺(tái)的應(yīng)用。DIV+CSS為我們提供了一個(gè)優(yōu)雅而規(guī)范的技術(shù)框架,讓我們能用最少的重復(fù)勞動(dòng),完成更多更美觀的頁面,從而提升整個(gè)團(tuán)隊(duì)的效率,甚至改變長(zhǎng)期以來網(wǎng)頁設(shè)計(jì)師與網(wǎng)頁程序員無法同步工作的問題。
相關(guān)文章
- 在Web頁面上我們可以使用frame和rules來控制表格邊框是否可見,下面我們就來詳解HTML中table表格的frame和rules屬性,需要的朋友可以參考下2016-07-08
HTML中table表格標(biāo)簽的基礎(chǔ)學(xué)習(xí)教程
用table標(biāo)簽在Web上顯示表格內(nèi)容是HTML所具有的最基本功能之一,這里我們就來看一下HTML中table表格標(biāo)簽的基礎(chǔ)學(xué)習(xí)教程,需要的朋友可以參考下2016-07-08html css 控制div或者table等固定在指定位置的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猦tml css 控制div或者table等固定在指定位置的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-06-13使用HTML5中的contentEditable來將多行文本自動(dòng)增高
這篇文章主要介紹了使用HTML5中的contentEditable來將文本自動(dòng)增高的方法,文章先對(duì)contentEditable這個(gè)HTML5中的新屬性作了一個(gè)簡(jiǎn)單介紹,需要的朋友可以參考下2016-03-01深入解析HTML的table表格標(biāo)簽與相關(guān)的換行問題
這篇文章主要介紹了HTML的table表格標(biāo)簽與相關(guān)的換行問題,文中給出了強(qiáng)制換行和強(qiáng)制不換行的解決方案,需要的朋友可以參考下2016-02-22html固定標(biāo)題列、標(biāo)題頭table具體實(shí)現(xiàn)代碼
為了布局的美觀度需要在html中固定標(biāo)題列、標(biāo)題頭,本文整理了一些相關(guān)實(shí)現(xiàn)技巧,經(jīng)測(cè)試還不錯(cuò),感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-04-26html的table用法(讓網(wǎng)頁的視覺效果顯示出來)
在html語法中table(即表格)是不可少的部分,沒有著個(gè),是很難對(duì)網(wǎng)頁的視覺效果顯示出來,現(xiàn)在我就說一下table,感興趣的朋友可以參考下哈2013-04-03- 下面小編就為大家?guī)硪黄狧TML table 直列化格式詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-26