定义和用法
float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。
值 | 描述 |
---|---|
left | 元素向左浮动 |
right | 元素向右浮动 |
none | 默认值。元素不浮动,并会显示在其在文本中出现的位置 |
inherit | 规定应该从父元素继承 float 属性的值 |
下面举几个例子来看看float有哪些妙用
实例1
css代码
.wrap{ width: 40%; margin:0 auto; background: #eee; } .div1{ width: 200px; height: 100px; border:1px solid red; } .div2{ width:100px; height: 80px; border:1px solid green; } .div3{ width:80px; height: 60px; border:1px solid blue; }
这是按照正常文档流来输出的。
下面我们改一下div1的样式
css代码
.div1{
200px;
height: 100px;
float:left;
border:1px solid red;
}
div2由于受到div1的浮动影响,div2填充了div1遗留下来的空间,发生重叠,div2在上面。div2的文本则被div1挡住,围绕在div1的周围。
这是因为浮动是不彻底的脱离文档流,当某个元素使用float时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。而对于使用绝对布局脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它。
可以通过给受影响的元素设置clear属性来清楚浮动,值可以是left,right,both。
再来看一个例子
实例2
css代码
.wrap{
40%;
margin:0 auto;
background: #eee;
}
.div1{
200px;
height: 100px;
float:left;
border:1px solid red;
}
.div2{
100px;
height: 80px;
float:left;
border:1px solid green;
}
.div3{
80px;
height: 60px;
float:left;
border:1px solid blue;
}
当把3个div都设置为左浮动后,由于没有给wrap设置高度,没有未浮动的内容给它撑开,wrap的高度缩为0。
可以给wrap设置overflow来清楚浮动影响:
css代码
.wrap{
40%;
margin:0 auto;
background: #eee;
overflow: hidden;
_zoom:1;
}
_zoom:1;属性是IE浏览器的专有属性,Firefox等其它浏览器不支持。它可以设置或检索对象的缩放比例。
效果:
实例3
css代码
img
{
float:right;
border:1px dotted black;
}
span
{
float:left;
2.5em;
font:400%/80% bold algerian,courier;
}
的左上角和右上角,同时实现文字环绕。