常见左右两列div+css布局技巧整理

2010年08月19日 星期四 上午 10:04

常见的左右两列div+css布局分为以下两种:

一、左右定宽布局

在css分别指定了左右两列的宽度的情况下,只需要将左边的div 向左浮动{float:left;},右边的div 向右浮动{float:right;},并清除浮动,即可实现。

常用的清除浮动有两种方式:

a、通过在浮动元素的父级元素上添加清除浮动的class类:clearfix(见下面的css代码部分);

b、通过在浮动元素后面添加一个空元素,然后在这个空元素上定义clear:both来清除浮动;

二、不定宽布局

不定宽布局分为一边不定宽和两边不定宽两种形式,在实际运用中第二种情况是不会采用的,我们具体来分析一下一边不定宽的左右布局方法,有以下两种情况:

1、左边定宽,右边不定宽,左在上,右在下;(此处的上和下是指在html代码中从上到下编写顺序中的位置,下文皆同)

遇到这种情况时,要将两个div进行左右布局,与左右定宽布局的方法基本相同,只需要将左边的div向左浮动{float:left;},并清除浮动,右边的div就会跟在已浮动的“div左”后面,即已经实现左右两列布局了。

2、左边定宽,右边不定宽,左在下,右在上

将右边div写在上方,通常是希望在加载网站内容时先显示右边的内容,这种情况在“左边为菜单,右边是内容”的左右布局中经常用到。

总结几点如下:

1)将右边的div向右浮动,并设一个负的margin-left;

2)在右边div里面增加一个div,用于放右边的内容,计算出左边需要留出的宽度,并将此数据设置为该div的margin-left,如{margin-left:280px;};

3)浮动后一定要在父级元素或后一个元素上清除浮动;

三、示例代码

下面我们通过一个简单的子例来了解一边定宽、左下右上的结构是如何实现左右两列布局的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

<title>左右布局-左边定宽,右边不定宽;右在上,左在下 </title>

<style type="text/css">

/* reset */

*,body{margin:0;padding:0;}

/* commons */

body{font-size:13px;}

.clearfix:after{content:".";display:block;visibility:none;height:0;clear:both;}

.clearfix{zoom:1;display:inline-block;}

#bd{background-color:#DDD; min-height:50px;_height:50px;}

#bd .right{ background-color:red;float:right;width:100%;}

#bd .right .content{ margin-left:270px;background-color:blue;color:#FFF;}

#bd .left{background-color:green;color:#FFF;width:260px; float:left; position:absolute}

</style>

</head>

<body>

<div > <p>下 </p> </div>

</body>

</html>