1. 程式人生 > >利用 CSS 進行網頁佈局

利用 CSS 進行網頁佈局

這裡主要主要介紹如何利用 CSS 來進行網頁的一欄兩欄三欄混合佈局

1. 一列布局

<html>
   <head>
      <style type="text/css">
         body{margin:0;padding:0}
         .top{height: 100px; background: blue;}
         .main{width: 800px; height: 300px; background: #ccc; margin: 0 auto; }
         .foot{width: 800px; height
: 100px
; background: #900; margin: 0 auto;}
</style> </head> <body> <div class="top"> </div> <div class="main"> </div> <div class="foot"> </div> </body> </html>

效果:

一列布局

2. 兩列布局

<html>
   <head>
      <style
type="text/css">
body{margin: 0; padding: 0} .main{width: 800px; margin: 0 auto;} .left{width:160px; height: 500px; float:left; background: red;} .right{width: 640px; height: 500px; float:right; background: blue;} </style> </head> <body> <div
class="main">
<div class="left"> </div> <div class="right"> </div> </div> </body> </html>

效果:

兩列布局

如果要使左右兩列的寬度自適應大小,只要將 class 等於 right 和 left 的兩個 div 的寬度設定為百分比的形式就好了,不要固定寬度。例如:

 .left{width:20%; }
.right{width: 80%; } 

3. 三列布局

設計要求:左右兩列的寬度是固定大小的,中間一列的寬度是根據內容自適應大小的。

<html>
   <head>
      <style type="text/css">
         body{margin:0; padding:0}
         .left{width:200px; height:500px; background:red; position:absolute; left:0; top:0;} 
         .middle{height:500px; background:#999; margin:0 300px 0 200px;}
         .right{width:300px; height:500px; background:blue; position:absolute; right:0; top:0;}
      </style>
   </head>
   <body>
      <div class="left"> </div>
      <div class="middle">
         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
         aaaaaaaaaaaaaaaaaaa
      </div>
      <div class="right"> </div>
   </body>
</html>

效果:

三列布局

如果我們在這裡只是簡單的設定 right, left 和 middle 的 div 的寬度的話,middle div 裡面的內容會顯示在一行,然後自己撐開了,使 right, left 和 middle 不在同一行,所以這裡用到了 position:absolute 從而使 middle div 裡面的根據內容自適應寬度。

4. 混合佈局

<html>
   <head>
      <style type="text/css">
         body{margin:0; padding:0}
         .top{height:50px; background:blue;}
         .head{height:50px; width:800px; background:#f60; margin: 0 auto;}
         .main{height:500px; width:800px; background:#cc; margin:0 auto;}
         .left{height:500px; width:200px; background:yellow; float:left;} 
         .right{height:500px; width:600px; background:369; float:right;}
         .sub_l{height:500px; width:400px; background:green; float:left;}
         .sub_r{height:500px; width:200px; background:#09f; float:right;}
         .foot{height:50px; width:800px; background:#900; margin: 0 auto;}
      </style>
   </head>
   <body>
      <div class="top"> 
         <div class="head">  </div>
      </div>
      <div class="main"> 
         <div class="left">  </div>
         <div class="right"> 
            <div class="sub_l">  </div>
            <div class="sub_r">  </div>
         </div>
      </div>
      <div class="foot">  </div>
   </body>
</html>

效果:

混合佈局