在页面布局的时候,可以用绝对定位来实现,但是由于调整某个区块框时其他区块的位置不会相应的改变,所以这并不是布局的首选方式。但是使用浮动的区块框可以向左或向右移动,直到它的外边缘碰到包含它区块的边框或另一个浮动狂的边框为止。并且由于浮动框不在文档的普通流中,所以文档的普通流中的区块框表现的像就浮动框不存在一样。
这篇文章就总结几种简单的区块框浮动的例子:
1.不浮动区块框排序
<html>
<head>
<title>DIV+CSS</title>
<style>
body{
margin:0px;
}
div{
width:200px;
height:200px;
font-size:40px;
text-align:center;
}
#one{
background:red;
}
#two{
background:green;
}
#three{
background:yellow;
}
</style>
</head>
<body>
<div id="one">
框(1)
</div>
<div id="two">
框(2)
</div>
<div id="three">
框(3)
</div>
</body>
</html>重新定义#one选择器,只需要添加一行代码:
#one{
float:right;
background:red;
}
3.设置第一个向左浮动
为了能让大家看出效果,必须要调整三个区块的大小,所以直接重新写代码了。
<html>
<head>
<title>DIV+CSS</title>
<style>
body{
margin:0px;
}
div{
height:200px;
font-size:40px;
text-align:center;
}
#one{
width:200px;
float:left;
background:red;
}
#two{
width:240px;
background:green;
}
#three{
width:200px;
background:yellow;
}
</style>
</head>
<body>
<div id="one">
框(1)
</div>
<div id="two">
框(2)
</div>
<div id="three">
框(3)
</div>
</body>
</html>不难看出,框(2)被框(1)给覆盖了。只有多出来的40px的宽度能看见。因为框(1)浮动之后,就不属于文档流范围,相当于它原先的位置空了出来,所以框(2)自然就补了上去。
4.设置三个框都向左浮动
这个只需要在例1中的div{ }中加一句代码:
float:left;运行效果:
5.设置三个框向左(空间不足)
只需要相应的修改三个区块的大小即可
<html>
<head>
<title>DIV+CSS</title>
<style>
body{
margin:0px;
}
div{
float:left;
height:200px;
font-size:40px;
text-align:center;
}
#one{
width:500px;
background-color:red;
}
#two{
width:400px;
background:green;
}
#three{
width:600px;
background:yellow;
}
</style>
</head>
<body>
<div id="one">
框(1)
</div>
<div id="two">
框(2)
</div>
<div id="three">
框(3)
</div>
</body>
</html>运行结果:
空间不足的话,区块就自动下移了
6.第三个区块被第一个“卡住”
区块3在上面没有足够的空间,下移的时候,区块1多出的部分会自动阻挡区块3的移动。
最后再介绍一个属性:clear(清除属性,指定一个元素是否允许有元素漂浮在它的旁边)
clear:none; clear:left; clear:right; clear:both;一共有这么几种值,分别对应不同的清除效果。灵活使用这个属性,很多的问题都能简单解决。
原文地址:http://blog.csdn.net/wzqnls/article/details/38120555