一、左右定寬佈局:
在css分別指定了左右兩列的寬度的情況下,只需要將左邊的div 向左浮動{float:left;},右邊的div 向右浮動{float:right;},並清除浮動,即可實現。
常用的清除浮動有兩種方式:
a、通過在浮動元素的父級元素上添加清除浮動的class類:clearfix(見下面的css代碼部分);
b、通過在浮動元素後面添加一個空元素,然後在這個空元素上定義clear:both來清除浮動;
二、不定寬佈局:
不定寬佈局分為一邊不定寬和兩邊不定寬兩種形式,在實際運用中第二種情況是不會採用的,我們具體來分析一下一邊不定寬的左右佈局方法,有以下兩種情況:
1、左邊定寬,右邊不定寬,左在上,右在下;( 左邊在右邊div的上邊)
遇到這種情況時,要將兩個div進行左右佈局,與左右定寬佈局的方法基本相同,只需要將左邊的div向左浮動{float:left;},並清除浮動,右邊的div就會跟在已浮動的“div左”後面,即已經實現左右兩列布局了。
2、左邊定寬,右邊不定寬,左在下,右在上;
將右邊div寫在上方,通常是希望在加載網站內容時先顯示右邊的內容,這種情況在“左邊為菜單,右邊是內容”的左右佈局中經常用到。
總結幾點如下:
1)將右邊的div向右浮動,並設一個負的margin-left;
2)在右邊div裏面增加一個div,用於放右邊的內容,計算出左邊需要留出的寬度,並將此數據設置為該div的margin-left,如{margin-left:280px;};
3)浮動後一定要在父級元素或後一個元素上清除浮動;
三、示例代碼:
下面我們通過一個簡單的子例來了解一邊定寬、左下右上的結構是如何實現左右兩列布局的:
html代碼:
<!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>左右佈局-左邊定寬,右邊不定寬;右在上,左在下</title>
<link rel="stylesheet" type="text/css" href="layout3.css" />
</head>
<body>
<div id="hd"><p>上</p></div>
<div id="bd" class="clearfix">
<div class="right">
<div class="content">
<p>右我在右邊</p>
<p>右我在右邊</p>
<p>右我在右邊</p>
<p>右我在右邊</p>
</div>
</div>
<div class="left">
<p>我在左邊</p>
</div>
</div>
<div id="ft"><p>下</p></div>
</body>
</html>
css代碼:
/* reset */
*,body{margin:0;padding:0;}
/* commons */
body{font-size:13px;}
.clearfix{zoom:1;}
.clearfix:after{content:´.´;display:block;visibility:none;height:0;clear:both;}
#bd{background-color:#DDD;min-height:50px;_height:50px;}
#bd .right{background-color:red;float:right;width:100%;margin-left:-25em;}
#bd .right .content{margin-left:270px;background-color:blue;color:#FFF;}
#bd .left{background-color:green;color:#FFF;width:260px;float:left;}