css float属性详解

时间:2023-03-09 19:37:22
css float属性详解

定义和用法

float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。

描述
left 元素向左浮动
right 元素向右浮动
none 默认值。元素不浮动,并会显示在其在文本中出现的位置
inherit 规定应该从父元素继承 float 属性的值

下面举几个例子来看看float有哪些妙用

实例1

css float属性详解

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{
width: 200px;
height: 100px;
float:left;
border:1px solid red;
}

再来看下效果
css float属性详解

div2由于受到div1的浮动影响,div2填充了div1遗留下来的空间,发生重叠,div2在上面。div2的文本则被div1挡住,围绕在div1的周围。

这是因为浮动是不彻底的脱离文档流,当某个元素使用float时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。而对于使用绝对布局脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它。

可以通过给受影响的元素设置clear属性来清楚浮动,值可以是left,right,both。

再来看一个例子

实例2

css代码

.wrap{
width: 40%;
margin:0 auto;
background: #eee;
}
.div1{
width: 200px;
height: 100px;
float:left;
border:1px solid red;
}
.div2{
width:100px;
height: 80px;
float:left;
border:1px solid green;
}
.div3{
width:80px;
height: 60px;
float:left;
border:1px solid blue;
}

效果:
css float属性详解

当把3个div都设置为左浮动后,由于没有给wrap设置高度,没有未浮动的内容给它撑开,wrap的高度缩为0。

可以给wrap设置overflow来清楚浮动影响:
css代码

.wrap{
width: 40%;
margin:0 auto;
background: #eee;
overflow: hidden;
_zoom:1;
}

效果:
css float属性详解

_zoom:1;属性是IE浏览器的专有属性,Firefox等其它浏览器不支持。它可以设置或检索对象的缩放比例。
效果:

实例3

css代码

img
{
float:right;
border:1px dotted black;
}
span
{
float:left;
width:2.5em;
font:400%/80% bold algerian,courier;
}

效果:
css float属性详解

通过给css float属性详解和设置浮动,让它们显示在父元素

的左上角和右上角,同时实现文字环绕。

float还可以用来实现横向两列布局,三列布局,水平菜单等,这里就不列举了。