转载一初学css布局的朋友的一篇总结文章,
原文地址:http://www.oncecode.com/Html/css/549.htm
在百度搜索‘左右布局’,发现好多朋友在问这个问题,特将上周学到的左右布局技巧整理分享给大家:)
常见的左右两列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)浮动后一定要在父级元素或后一个元素上清除浮动;
三、示例代码:
下面我们通过一个简单的子例来了解一边定宽、左下右上的结构是如何实现左右两列布局的:
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;}
有话要说