div對(duì)齊與網(wǎng)頁(yè)布局詳解
div布局之所以要學(xué)懂學(xué)透,是因?yàn)閠able的布局實(shí)在是難堪大用,如果是同處于一個(gè)表格之內(nèi),各行的規(guī)格分布根本就沒(méi)法調(diào),例如下面的一段非常簡(jiǎn)單的代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無(wú)標(biāo)題文檔</title> </head> <body> <table border="1"> <tr> <td width="5%">11111111111111</td> <td width="85%">11111111111111</td> <td width="5%">11111111111111</td> <td width="5%">11111111111111</td> </tr> <tr> <td width="5%">11111111111111</td> <td width="5%">11111111111111</td> <td width="85%">11111111111111</td> <td width="5%">11111111111111</td> </tr> </table> </body> </html>
本想寫(xiě)出這樣的布局:

但實(shí)際上出來(lái)的效果卻是這樣:

這很正常,因?yàn)閠able布局中僅有第一行對(duì)于td的設(shè)置是起作用的,余下行的td設(shè)置都會(huì)給第一行的td設(shè)置所覆蓋。
這個(gè)問(wèn)題很?chē)?yán)重,尤其是各位網(wǎng)頁(yè)設(shè)計(jì)師,把table的border屬性設(shè)置成0的情況下,很難想出發(fā)生了什么?
解決這樣的問(wèn)題,如果還是用table布局,那你有兩種方法,一是讓這兩行不處于同一個(gè)表格,二是使用表格嵌套的方式。
不過(guò)這也太蛋疼了吧,每次布局都要用一個(gè)新的表格?而且腳本對(duì)這么多表格如何編號(hào)?如何控制?
所以說(shuō)table的網(wǎng)頁(yè)布局不堪大用,只能用于行內(nèi)的布局,table在行內(nèi)布局的作用對(duì)于div確實(shí)強(qiáng)大很多。
但是div布局同樣可以完成行內(nèi)布局,只不過(guò)要定義好style中的float屬性,并且完成了一次行內(nèi)布局,要使用style中的clear:both換行。

如上的圖層排放是通過(guò)如下的代碼所實(shí)現(xiàn)的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>div</title> </head> <body> <!--默認(rèn)情況下的div對(duì)齊--> <div style="background:#aa0; width:15%; height:100px;"></div> <div style="background:#0a0; width:15%; height:100px;"></div> <!--更換對(duì)齊方式,必須使用clear:both換行,這個(gè)換行符的高度為10px,默認(rèn)為0px,顏色同網(wǎng)頁(yè)的背景色--> <div style="clear:both; height:10px;"></div> <!--使用了行內(nèi)右對(duì)齊的方式,是先寫(xiě)最右圖層,再寫(xiě)次右圖層,與常人思維相反--> <div style="background:#F00; width:10%; height:100px; float:right; margin-right:10%"></div> <div style="background:#00f; width:10%; height:100px; float:right;"></div> <div style="clear:both; height:10px;"></div> <!--使用行內(nèi)左對(duì)齊方式--> <div style="background:#0f0; width:10%; height:100px; float:left;"></div> <div style="background:#F00; width:10%; height:100px; float:left;"></div> <div style="clear:both; height:10px;"></div> <div style="background:#00f; width:10%; height:100px; float:left;"></div> <!--如果你更換對(duì)齊方式,這里是希望從行內(nèi)左對(duì)齊更變成一個(gè)無(wú)論大小的圖層占用一行,而不用clear:both換行的話(huà),這兩個(gè)圖層會(huì)疊放在一起,出錯(cuò)--> <div style="background:#0af; width:15%; height:100px;"></div> <!--此乃正確的使用方式。--> <div style="clear:both; height:10px;"></div> <div style="background:#aa0; width:15%; height:100px;"></div> <div style="background:#0a0; width:15%; height:100px;"></div> </body> </html>
而對(duì)于一些如導(dǎo)航條等固定在頁(yè)面首部或者頁(yè)面尾部的圖層,一些游離于體系之外的廣告圖層,則需要用到position的對(duì)齊方式,前者是fixed后者是absolute。
在上面的代碼中,繼續(xù)加入如下代碼:
<div style="background:#eee; width:15%; height:100px; position:absolute; top:5%; left:80%;">游離于體系之外</div> <div style="background:#aaa; width:100%; height:30px; position:fixed; top:0%;left:0%">游離于體系之外</div> <!--下面兩個(gè)圖層,只是為了說(shuō)明上面兩行代碼可以放在任何位置,但不影響網(wǎng)頁(yè)布局之用--> <div style="background:#aa0; width:15%; height:100px;"></div> <div style="background:#0a0; width:15%; height:100px;"></div>
則能夠出現(xiàn)如下效果:

被position:fixed的圖層,即使?jié)L動(dòng)條拉下來(lái)也是一直掛著頭部的:

上述關(guān)于“導(dǎo)航條”圖層與“廣告”圖層的兩行代碼可以放在任何位置,不影響網(wǎng)絡(luò)布局。那么,網(wǎng)頁(yè)的所有代碼演變成如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>div</title> </head> <body> <!--默認(rèn)情況下的div對(duì)齊--> <div style="background:#aa0; width:15%; height:100px;"></div> <div style="background:#0a0; width:15%; height:100px;"></div> <!--更換對(duì)齊方式,必須使用clear:both換行,這個(gè)換行符的高度為10px,默認(rèn)為0px,顏色同網(wǎng)頁(yè)的背景色--> <div style="clear:both; height:10px;"></div> <!--使用了行內(nèi)右對(duì)齊的方式,是先寫(xiě)最右圖層,再寫(xiě)次右圖層,與常人思維相反--> <div style="background:#F00; width:10%; height:100px; float:right; margin-right:10%"></div> <div style="background:#00f; width:10%; height:100px; float:right;"></div> <div style="clear:both; height:10px;"></div> <!--使用行內(nèi)左對(duì)齊方式--> <div style="background:#0f0; width:10%; height:100px; float:left;"></div> <div style="background:#F00; width:10%; height:100px; float:left;"></div> <div style="clear:both; height:10px;"></div> <div style="background:#00f; width:10%; height:100px; float:left;"></div> <!--如果你更換對(duì)齊方式,這里是希望從行內(nèi)左對(duì)齊更變成一個(gè)無(wú)論大小的圖層占用一行,而不用clear:both換行的話(huà),這兩個(gè)圖層會(huì)疊放在一起,出錯(cuò)--> <div style="background:#0af; width:15%; height:100px;"></div> <!--此乃正確的使用方式。--> <div style="clear:both; height:10px;"></div> <div style="background:#aa0; width:15%; height:100px;"></div> <div style="background:#0a0; width:15%; height:100px;"></div> <div style="background:#eee; width:15%; height:100px; position:absolute; top:5%; left:80%;">游離于體系之外</div> <div style="background:#aaa; width:100%; height:30px; position:fixed; top:0%;left:0%">游離于體系之外</div> <!--下面兩個(gè)圖層,只是為了說(shuō)明上面兩行代碼可以放在任何位置,但不影響網(wǎng)頁(yè)布局之用--> <div style="background:#aa0; width:15%; height:100px;"></div> <div style="background:#0a0; width:15%; height:100px;"></div> </body> </html>
所以說(shuō),div布局比table布局強(qiáng)大得多,可控,可用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
css實(shí)現(xiàn)文本和div居中對(duì)齊詳細(xì)講解示例
這篇文章主要介紹了css實(shí)現(xiàn)文本和div居中對(duì)齊詳細(xì)講解示例,需要的朋友可以參考下2014-05-05通過(guò)position定位實(shí)現(xiàn)div底端對(duì)齊
這篇文章主要介紹了通過(guò)position定位實(shí)現(xiàn)div底端對(duì)齊,感興趣的朋友可以參考下2014-04-02多個(gè)div中table的tdwidth設(shè)置一樣也不法對(duì)齊
最近發(fā)現(xiàn)多個(gè)div中table的td就算調(diào)成一樣的width也無(wú)法對(duì)齊,后來(lái)發(fā)現(xiàn)了解決方法,提到table-layout: fixed,經(jīng)設(shè)置效果相當(dāng)不錯(cuò),大家可以參考下2014-03-28圖片在div中垂直和水平同時(shí)對(duì)齊的實(shí)現(xiàn)方法
這篇文章主要介紹了關(guān)于圖片在div中垂直和水平同時(shí)對(duì)其的問(wèn)題,下面有個(gè)不錯(cuò)的解決方法,大家可以參考下2014-03-28DIV和SPAN垂直居中對(duì)齊的實(shí)現(xiàn)方法
DIV和SPAN如何垂直居中對(duì)齊,水平居中很簡(jiǎn)單,設(shè)置text-align:center就可以了,垂直居中一直很是疑惑,下面為大家解惑2014-02-20將一個(gè)絕對(duì)定位的div水平垂直居中對(duì)齊
在某些時(shí)候可能需要將一個(gè)絕對(duì)定位的div在它的父對(duì)象中垂直居中對(duì)齊,可能用到的頻率不是太高,但是偶爾也會(huì)用到,下面就簡(jiǎn)單介紹一下如何實(shí)現(xiàn)此功能2014-01-27div中加入span右對(duì)齊后出現(xiàn)換行顯示兩種解決思路
div中加入span右對(duì)齊后,出現(xiàn)了換行問(wèn)題,一般思路的話(huà)一定是認(rèn)為通過(guò)分開(kāi)兩列,一個(gè)align=left,另一個(gè)align=right;很是疑惑,于是利用閑暇時(shí)間,搜索整理下,曬出來(lái) 2012-12-19 div中子div在firefox ie 水平居中對(duì)齊
div 水平居中的實(shí)現(xiàn)方法。2009-10-15CSS讓圖片垂直居中和底端對(duì)齊的代碼-CSS教程-網(wǎng)頁(yè)制作-網(wǎng)頁(yè)教學(xué)網(wǎng)
本CSS教程提供了兩種對(duì)齊方式即垂直居中對(duì)齊和底端對(duì)齊!更多內(nèi)容請(qǐng)參考本站的CSS視頻教程。 CSS使圖片垂直居中的代碼: <!DOCTYPE html PUBLIC "-//W3C//DT2008-10-17這篇文章主要為大家詳細(xì)介紹了html5 div布局與table布局,區(qū)分div布局與table布局的異同,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-16最新評(píng)論
文章分類(lèi)
大家感興趣的內(nèi)容
- 1div圖片垂直居中 如何使div中圖片垂直居中
- 2css實(shí)現(xiàn)div自動(dòng)添加滾動(dòng)條(圖片或文字等超出時(shí)顯示)
- 3讓兩個(gè)Div并排顯示的多種方法
- 4圖片上添加文字的兩種常用方式
- 5限制div高度當(dāng)內(nèi)容多了溢出時(shí)顯示滾動(dòng)條
- 6div 背景透明度 如何設(shè)置一個(gè)div的背景透明度
- 7如何用CSS讓文字居于div的底部
- 8采用CSS定位屬性實(shí)現(xiàn)Html中DIV層疊與懸浮
- 9div 溢出隱藏 div文字溢出用點(diǎn)(省略號(hào))代替
- 10設(shè)置DIV最小高度以及高度自適應(yīng)隨著內(nèi)容的變化而變化
最近更新的內(nèi)容
- 如何實(shí)現(xiàn)div 圖片在DIV內(nèi)水平居中
- DIV CSS實(shí)現(xiàn)網(wǎng)頁(yè)背景半透明效果
- 解析div與span區(qū)別與用法
- 設(shè)置div背景透明的方法示例
- CSS實(shí)現(xiàn)div不設(shè)高度完全居中
- div自適應(yīng)高度自動(dòng)填充剩余高度
- 詳解DIV+CSS的命名規(guī)矩才能有利于SEO優(yōu)化的實(shí)現(xiàn)方法
- DIV或者DIV里面的圖片水平與垂直居中的方法
- 詳解如何用div實(shí)現(xiàn)自制滾動(dòng)條
- div對(duì)齊與網(wǎng)頁(yè)布局詳解

