国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

div對齊與網頁布局詳解

2024-07-11 08:41:43
字體:
來源:轉載
供稿:網友

div布局之所以要學懂學透,是因為table的布局實在是難堪大用,如果是同處于一個表格之內,各行的規格分布根本就沒法調,例如下面的一段非常簡單的代碼:

<!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>無標題文檔</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>

本想寫出這樣的布局:

但實際上出來的效果卻是這樣:

這很正常,因為table布局中僅有第一行對于td的設置是起作用的,余下行的td設置都會給第一行的td設置所覆蓋。

這個問題很嚴重,尤其是各位網頁設計師,把table的border屬性設置成0的情況下,很難想出發生了什么?

解決這樣的問題,如果還是用table布局,那你有兩種方法,一是讓這兩行不處于同一個表格,二是使用表格嵌套的方式。

不過這也太蛋疼了吧,每次布局都要用一個新的表格?而且腳本對這么多表格如何編號?如何控制?

所以說table的網頁布局不堪大用,只能用于行內的布局,table在行內布局的作用對于div確實強大很多。

但是div布局同樣可以完成行內布局,只不過要定義好style中的float屬性,并且完成了一次行內布局,要使用style中的clear:both換行。

如上的圖層排放是通過如下的代碼所實現的:

<!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>  <!--默認情況下的div對齊-->  <div style="background:#aa0; width:15%; height:100px;"></div>  <div style="background:#0a0; width:15%; height:100px;"></div>  <!--更換對齊方式,必須使用clear:both換行,這個換行符的高度為10px,默認為0px,顏色同網頁的背景色-->  <div style="clear:both; height:10px;"></div>  <!--使用了行內右對齊的方式,是先寫最右圖層,再寫次右圖層,與常人思維相反-->  <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>  <!--使用行內左對齊方式-->  <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>  <!--如果你更換對齊方式,這里是希望從行內左對齊更變成一個無論大小的圖層占用一行,而不用clear:both換行的話,這兩個圖層會疊放在一起,出錯-->  <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> 

而對于一些如導航條等固定在頁面首部或者頁面尾部的圖層,一些游離于體系之外的廣告圖層,則需要用到position的對齊方式,前者是fixed后者是absolute。

在上面的代碼中,繼續加入如下代碼:

<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>  <!--下面兩個圖層,只是為了說明上面兩行代碼可以放在任何位置,但不影響網頁布局之用-->  <div style="background:#aa0; width:15%; height:100px;"></div>  <div style="background:#0a0; width:15%; height:100px;"></div>  

則能夠出現如下效果:

被position:fixed的圖層,即使滾動條拉下來也是一直掛著頭部的:

上述關于“導航條”圖層與“廣告”圖層的兩行代碼可以放在任何位置,不影響網絡布局。那么,網頁的所有代碼演變成如下:

<!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>  <!--默認情況下的div對齊-->  <div style="background:#aa0; width:15%; height:100px;"></div>  <div style="background:#0a0; width:15%; height:100px;"></div>  <!--更換對齊方式,必須使用clear:both換行,這個換行符的高度為10px,默認為0px,顏色同網頁的背景色-->  <div style="clear:both; height:10px;"></div>  <!--使用了行內右對齊的方式,是先寫最右圖層,再寫次右圖層,與常人思維相反-->  <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>  <!--使用行內左對齊方式-->  <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>  <!--如果你更換對齊方式,這里是希望從行內左對齊更變成一個無論大小的圖層占用一行,而不用clear:both換行的話,這兩個圖層會疊放在一起,出錯-->  <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>  <!--下面兩個圖層,只是為了說明上面兩行代碼可以放在任何位置,但不影響網頁布局之用-->  <div style="background:#aa0; width:15%; height:100px;"></div>  <div style="background:#0a0; width:15%; height:100px;"></div>  </body>  </html>  

所以說,div布局比table布局強大得多,可控,可用。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桑日县| 临沂市| 新干县| 阿克陶县| 丹凤县| 冕宁县| 沾益县| 孝义市| 永登县| 昭苏县| 博乐市| 清远市| 蓬莱市| 韶关市| 章丘市| 大英县| 衡东县| 扬中市| 盘山县| 无极县| 蓬莱市| 平利县| 南漳县| 阜平县| 洞口县| 瑞丽市| 衡东县| 米易县| 天津市| 新丰县| 南阳市| 新邵县| 永泰县| 永嘉县| 宁强县| 克什克腾旗| 内乡县| 汉源县| 托里县| 扎鲁特旗| 昭苏县|