欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS深入理解之float

程序员文章站 2022-03-29 15:58:23
...

float 属性定义元素在哪个方向浮动。产生之初这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。让设置的标签产生浮动效果,就是脱离原来页面的标准输出流。

HTML页面的标准文档流(默认布局):

从上到下,从左到右,遇到块级元素换行。
如果想实现左右结构,float是一种选择(当然还有其他方法)。
比如:

<div style="widht:500px">
<div style="float:left;width:200px">左</div>
<div style="float:left;width:200px">右</div>
</div>

这样,这个两个DIV标签就在同一行上了(同时靠左),当然有个前提,就是他们俩的父元素的宽度要至少大于400px,这样才能在同一行上。这个结果是两个DIV的右侧会空出100px的空白。

<div style="widht:500px">
<div style="float:left;width:200px">左</div>
<div style="float:right;width:200px">右</div>
</div>

以上写法,也是在同一行。不同的是,一个靠左,一个靠右。不过这里边的两个DIV的中间有100px的空白。

需要注意的是,当标签使用了float属性后,就脱离了标准输出流,就不受页面约束了。这样不方便,也不利于页面布局。所以,一般浮动之后要清除浮动。
浮动元素在文档流空出的位置,由后续的(非浮动)元素填充上去:块级元素直接填充上去,若跟浮动元素的范围发生重叠,浮动元素覆盖块级元素。内联元素:有空隙就插入。(此句引自博客园方木一)

<div style="widht:500px">
<div style="float:left;width:200px">左</div>
<div style="float:right;width:200px">右</div>
<span style="clear:both"></span>
</div>

这样,页面整体的布局结构就基本上没有被破坏了。

.float_r{width:56px;float:right;}
.float_flow{margin-right:76px;}

上边这个是右浮动;改变DOM位置的流动布局写法。

.float_l{with:100%;float:left;}
.float_flow{margin-right:76px;}
.head_l{width:56px;float:left;margin-left:-56px;}

上边这个是左浮动;不改变DOM位置的流动布局写法。