如果我们的网站排版方式是纵向的,比如两列、三列(当然还可以更多)。这样的排版我们就会用到 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>
事实上在实际操作中还是会有很多问题会出现,这就需要我们以冷静的头脑去分析与解决了! |