你的位置:首页 > 网页设计

[网页设计]DIV+CSS 网页布局之:两列布局


1、宽度自适应两列布局

  两列布局可以使用浮动来完成,左列设置左浮动,右列设置右浮动,这样就省的再设置外边距了。

  当元素使用了浮动之后,会对周围的元素造成影响,那么就需要清除浮动,通常使用两种方法。可以给受到影响的元素设置 clear:both,即清除元素两侧的浮动,也可以设置具体清除哪一侧的浮动:clear:left 或 clear:right,但必须清楚的知道到底是哪一侧需要清除浮动的影响。也可以给浮动的父容器设置宽度,或者为 100%,同时设置 overflow:hidden,溢出隐藏也可以达到清除浮动的效果。

  同理,两列宽度自适应,只需要将宽度按照百分比来设置,这样当浏览器窗口调整时,内容会根据窗口的大小,按照百分比来自动调节内容的大小。

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="UTF-8"> 5   <title>宽度自适应两列布局</title> 6 <style> 7 *{margin:0;padding:0;} 8 #herder{ 9   height:50px;10   background:blue;11 }12 .main-left{13   width:30%;14   height:800px;15   background:red;16   float:left;17 }18 .main-right{19   width:70%;20   height:800px;21   background:pink;22   float:right;23 }24 #footer{25   clear:both;26   height:50px;27   background:gray;28 }29 </style>30 </head>31 <body>32 <div id="herder">页头</div>33 <div class="main-left">左列</div>34 <div class="main-right">右列</div>35 <div id="footer">页脚</div>36 </body>37 </html>

2、固定宽度两列布局

  宽度自适应两列布局在网站中一般很少使用,最常使用的是固定宽度的两列布局。

  要实现固定宽度的两列布局,也很简单,只需要把左右两列包裹起来,也就是给他们增加一个父容器,然后固定父容器的宽度,父容器的宽度固定了,那么这两列就可以设置具体的像素宽度了,这样就实现了固定宽度的两列布局。

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="UTF-8"> 5   <title>固定宽度两列布局</title> 6 <style> 7 *{margin:0;padding:0;} 8 #herder{ 9   height:50px;10   background:blue;11 }12 #main{13   width:960px;14   margin:0 auto;15   overflow:hidden;16 }17 #main .main-left{18   width:288px;19   height:800px;20   background:red;21   float:left;22 }23 #main .main-right{24   width:672px;25   height:800px;26   background:pink;27   float:right;28 }29 #footer{30   width:960px;31   height:50px;32   background:gray;33   margin:0 auto;34 }35 </style>36 </head>37 <body>38 <div id="herder">页头</div>39 <div id="main">40   <div class="main-left">左列</div>41   <div class="main-right">右列</div>42 </div>43 <div id="footer">页脚</div>44 </body>45 </html>

3、两列居中自适应布局

  同理,只需要给定父容器的宽度,然后让父容器水平居中。

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="UTF-8"> 5   <title>两列居中自适应布局</title> 6 <style> 7 *{margin:0;padding:0;} 8 #herder{ 9   height:50px;10   background:blue;11 }12 #main{13   width:80%;14   margin:0 auto;15   overflow:hidden;16 }17 #main .main-left{18   width:20%;19   height:800px;20   background:red;21   float:left;22 }23 #main .main-right{24   width:80%;25   height:800px;26   background:pink;27   float:right;28 }29 #footer{30   width:80%;31   height:50px;32   background:gray;33   margin:0 auto;34 }35 </style>36 </head>37 <body>38 <div id="herder">页头</div>39 <div id="main">40   <div class="main-left">左列</div>41   <div class="main-right">右列</div>42 </div>43 <div id="footer">页脚</div>44 </body>45 </html>

4、固定宽度横向两列布局

  和单列布局相同,可以把所有块包含在一个容器中,这样做方便设置,但增加了无意义的代码,固定宽度就是给定父容器的宽度,然后中间主体使用浮动。

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="UTF-8"> 5   <title>横向两列布局</title> 6 <style> 7 *{margin:0;padding:0;} 8 #warp{ 9   width:960px;10   margin:0 auto;11   margin-top:10px;12 }13 #herder{14   height:50px;15   background:blue;16 }17 #nav{18   height:30px;19   background:orange;20   margin:10px 0;21 }22 #main{23   width:100%;24   margin-bottom:10px;25   overflow:hidden;26 }27 #main .main-left{28   width:640px;29   height:200px;30   background:yellow;31   float:left;32 }33 #main .main-right{34   width:300px;35   height:200px;36   background:pink;37   float:right;38 }39 #content{40   width:100%;41   overflow:hidden;42 }43 #content .content-left{44   width:640px;45   height:800px;46   background:lightgreen;47   float:left;48 }49 #content .content-right-sup{50   width:300px;51   height:500px;52   background:lightblue;53   float:right;54 }55 #content .content-right-sub{56   width:300px;57   height:240px;58   background:purple;59   margin-top:20px;60   float:right;61 }62 #footer{63   height:50px;64   background:gray;65   margin-top:10px;66 }67 </style>68 </head>69 <body>70 <div id="warp">71   <div id="herder">页头</div>72   <div id="nav">导航</div>73   <div id="main">74     <div class="main-left">左-上</div>75     <div class="main-right">右-上</div>76   </div>77   <div id="content">78     <div class="content-left">左-下</div>79     <div class="content-right-sup">右-上</div>80     <div class="content-right-sub">右-下</div>81   </div>82   <div id="footer">页脚</div>83 </div>84 </body>85 </html>