日期:2013-09-01  浏览次数:20963 次

如果我们的网站排版方式是纵向的,比如两列、三列(当然还可以更多)。这样的排版我们就会用到 float 例:排成三列的格式。代码如下:
<div id="content">
<div id="subcol">subcol</div>
<div id="main">
<div id="maincol">maincol</div>
<div id="xcol">xcol</div>
</div>
</div>

这里我们打算把subcol放在左侧,maincol放在两头,xcol放在右侧。CSS的写法如下:

#content{width:700px; background:#f30;}
#subcol {float:left; width:200px;}
#main {width:500px; height:100px; float:right;}
#maincol {width:300px;float:left;}
#xcol {width:200px; float:right;}

好像这样就没问题了!但是理想上我们可以发现背景却没有伸展的意思,这是由于背景的自顺应高度并不承继float的高度,如何处理这个问题呢?如下分析:

背景会承继float底线所在容器中的位置高度,所以背景一定会找到最后一个标签去测定,这样我们在所有的float下方下如下的标签:
<div style="clear:both;"></div>

这个标签中什么也不放。也就是一个没有高度的空容器,这样它就可以把背影拉下来了。

修正过的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<style type="text/css">
<!--
#content{width:700px; background:#f30;}
#subcol {float:left; width:200px;}
#main {width:500px; height:100px; float:right;}
#maincol {width:300px;float:left;}
#xcol {width:200px; float:right;}
-->
</style>
</head>

<body>
<div id="content">
<div id="subcol">subcol</div>
<div id="main">
<div id="maincol">maincol</div>
<div id="xcol">xcol</div>
</div>
<div style="clear:both;"></div>
</div>
</body>
</html>


理想上在实际操作中还是会有很多问题会出现,这就需求我们以冷静的头脑去分析与处理了!