DIVCSS布局:CSS浮动float属性详解在传统的表格布局中,我们对表格应该对齐方式对实现了对布局的应用,而应用Web标准构建网页以后,float浮动属性是布局中非常重要的属性,我们常常通过对div元素应用float浮动来进行布局,不但对整个版式进行规划,也可以对一些基本元素如导航等进行排列。我们来看看float属性基本释义:该属性的值指出了对象是否及如何浮动。当该属性不等于none引起对象浮动时,对象将被视作块对象(block-level),即display属性等于block。也就是说,浮动对象的display特性将被忽略。float属性的参数:none:对象不浮动left:对象浮在左边right:对象浮在右边下面我们通过一些测试来了解可能出现的一些情况,如果float取值为none则不会发生任何浮动,块元素独占一行,紧随其后的块元素将在新行中显示,如下图:我们看下面的运行效果:SourceCodetoRun[www.52css.com]!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtmlxmlns=http://www.w3.org/1999/xhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/title52CSS/titlestyletype=text/css#content_a{width:200px;height:80px;border:1pxsolid#000;margin:10px;background:#ccc;}#content_b{width:200px;height:80px;border:1pxsolid#000;margin:10px;background:#999;}/style/headbodydivid=content_a52CSS.com这是第一个DIV/divdivid=content_b52CSS.com这是第二个DIV/div/body/html[可先修改部分代码再运行查看效果]我们对content_a应用向左的浮动。而content_b不应用任何浮动。SourceCodetoRun[www.52css.com]!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtmlxmlns=http://www.w3.org/1999/xhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/title52CSS/titlestyletype=text/css#content_a{width:200px;height:80px;float:left;border:1pxsolid#000;margin:10px;background:#ccc;}#content_b{width:200px;height:80px;border:1pxsolid#000;margin:10px;background:#999;}/style/headbodydivid=content_a52CSS.com这是第一个DIV向左浮动/divdivid=content_b52CSS.com这是第二个DIV不应用浮动/div/body/html[可先修改部分代码再运行查看效果]我们看在IE6中的效果:我们看在FF中的效果:在IE中,对content_a应用向左的浮动后,content_a向左浮动,content_b在水平方向仅跟着它的后面。在FF中,对content_a应用向左的浮动后,content_b在水平方向容器不可见,只留下了文字。这是由于未清除浮动所造成的现象,关于清除浮动,可以参考这里:http://www.52css.com/article.asp?id=132(overflow:auto;)这就是IE与FF对此种情况的不同解决,我们在实际布局中,应该避免这样的情况发生。我们同时对这两个容器应用向左的浮动看看发生的现象。SourceCodetoRun[www.52css.com]!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtmlxmlns=http://www.w3.org/1999/xhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/title52CSS/titlestyletype=text/css#content_a{width:200px;height:80px;float:left;border:1pxsolid#000;margin:10px;background:#ccc;}#content_b{width:200px;height:80px;float:left;border:1pxsolid#000;margin:10px;background:#999;}/style/headbodydivid=content_a52CSS.com这是第一个DIV向左浮动/divdivid=content_b52CSS.com这是第二个DIV向左浮动/div/body/html[可先修改部分代码再运行查看效果]在IE中的效果如图:在FF中的效果如图:在IE与FF中,他们的效果基本取得了一致。在布局中,我们可应用这类IE与FF兼容的方法。我们对content_b应用向左的浮动。而content_a不应用任何浮动。看看是何效果:SourceCodetoRun[www.52css.com]!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtmlxmlns=http://www.w3.org/1999/xhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/title52CSS/titlestyletype=text/css#content_a{width:200px;height:80px;border:1pxsolid#000;margin:10px;background:#ccc;}#content_b{width:200px;height:80px;float:left;border:1pxsolid#000;margin:10px;background:#999;}/style/headbodydivid=content_a52CSS.com这是第一个DIV不应用浮动/divdivid=content_b52CSS.com这是第二个DIV向左浮动/div/body/html[可先修改部分代码再运行查看效果]在IE中的效果如图:在FF中的效果如图:在IE与FF中均未有太大的变化。在IE中,应用浮动后的content_b却造成了一个双边距的BUY。汗一个先。关于IE的双边距BUY请参考这里:http://www.52css.com/article.asp?id=144向左浮动会出现何种状态呢?在向右浮动后,最大的变化就是在HTML中,前面的元素在最右边,后面的元素跑到了最左边。我们对上面代码中的两个元素同时应用向右的浮动看看效果。SourceCodetoRun[www.52css.com]!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtmlxmlns=http://www.w3.org/1999/xhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/title52CSS/titlestyletype=text/css#content_a{width:200px;height:80px;float:right;border:1pxsolid#000;margin:10px;background:#ccc;}#content_b{width:200px;height:80px;float:right;border:1pxsolid#000;margin:10px;background:#999;}/style/headbodydivid=content_a52CSS.com这是第一个DIV向右浮动/divdivid=content_b52CSS.com这是第二个DIV向右浮动/div/body/html[可先修改部分代码再运行查看效果]在IE中的效果如图:在FF中的效果如图:同时对两个元素应用向右的浮动基本保持了一致,但请注意方向性,第二个在左边,第一个在右边。对于其它页面构成元素,浮动的原理基本是一样的,大家多动手测试,才能有更进一下的认识。学习CSS就是多动手,多写代码,必有收获!