DIV CSS布局:CSS浮动float属性详解

在传统的表格布局中,我们对表格应该对齐方式对实现了对布局的应用,而应用Web标准构建网页以后,float浮动属性是布局中非 常重要的属性,我们常常通过对div元素应用float浮动来进行布局,不但对整个版式进行规划,也可以对一些基本元素如导航等进行排列。

我们来看看float属性基本释义:
该属性的值指出了对象是否及如何浮动。当该属性不等于none引起对象浮动时,对象将被视作块对象(block-level),即display属性等于 block。也就是说,浮动对象的display特性将被忽略。

float属性的参数:
none:对象不浮动
left:对象浮在左边
right:对象浮在右边

下面我们通过一些测试来了解可能出现的一些情况,如果float取值为none则不会发生任何浮动,块元素独占一行,紧随其后的块元素将在新行中显示,如 下图:


我们看下面的运行效果:

Source Code to Run [www.52css.com]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type" content="text/html; charset=gb2312" /><title>52CSS</title> <style type="text/css">#content_a {width:200px; height:80px; border:1px solid #000;margin:10px; background:#ccc;} #content_b {width:200px; height:80px;border:1px solid #000; margin:10px; background:#999;} </style></head> <body> <div id="content_a">52CSS.com这是第一个DIV</div> <div id="content_b">52CSS.com这是第二个DIV</div> </body> </html>
[ 可先修改部分代码 再运行查看效果 ]


我们对content_a应用向左的浮动。而content_b不应用任何浮动。

Source Code to Run [www.52css.com]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type" content="text/html; charset=gb2312" /><title>52CSS</title> <style type="text/css">#content_a {width:200px; height:80px; float:left; border:1px solid#000; margin:10px; background:#ccc;} #content_b {width:200px;height:80px; border:1px solid #000; margin:10px; background:#999;}</style> </head> <body> <divid="content_a">52CSS.com 这是第一个DIV 向左浮动</div> <divid="content_b">52CSS.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对此种情况的不同解决,我们在实际布局中,应该避免这样的情况发生。

我 们同时对这两个容器应用向左的浮动看看发生的现象。

Source Code to Run [www.52css.com]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type" content="text/html; charset=gb2312" /><title>52CSS</title> <style type="text/css">#content_a {width:200px; height:80px; float:left; border:1px solid#000; margin:10px; background:#ccc;} #content_b {width:200px;height:80px; float:left; border:1px solid #000; margin:10px;background:#999;} </style> </head> <body> <divid="content_a">52CSS.com 这是第一个DIV 向左浮动</div> <divid="content_b">52CSS.com 这是第二个DIV 向左浮动</div> </body></html>
[ 可先修改部分代码 再运行查看效果 ]


在IE中的效果如图:


在FF中的效果如图:


在IE与FF中,他们的效果基本取得了一致。在布局中,我们可应用这类IE与FF兼容的方法。

我们对content_b应用向左的浮动。而content_a不应用任何浮动。看看是何效果:

Source Code to Run [www.52css.com]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type" content="text/html; charset=gb2312" /><title>52CSS</title> <style type="text/css">#content_a {width:200px; height:80px; border:1px solid #000;margin:10px; background:#ccc;} #content_b {width:200px; height:80px;float:left; border:1px solid #000; margin:10px; background:#999;}</style> </head> <body> <divid="content_a">52CSS.com 这是第一个DIV 不应用浮动</div> <divid="content_b">52CSS.com 这是第二个DIV 向左浮动</div> </body></html>
[ 可先修改部分代码 再运行查看效果 ]


在IE中的效果如图:


在FF中的效果如图:


在IE与FF中均未有太大的变化。在IE中,应用浮动后的content_b却造成了一个双边距的BUY。汗一个先。关于IE的双边距BUY请参考这里:http://www.52css.com/article.asp?id=144

向左浮动会出现何种状态呢?在向右浮动后,最大的变化就是在HTML中,前面的元素在最右边,后面的元素跑到了最左边。

我 们对上面代码中的两个元素同时应用向右的浮动看看效果。

Source Code to Run [www.52css.com]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type" content="text/html; charset=gb2312" /><title>52CSS</title> <style type="text/css">#content_a {width:200px; height:80px; float:right; border:1px solid#000; margin:10px; background:#ccc;} #content_b {width:200px;height:80px; float:right; border:1px solid #000; margin:10px;background:#999;} </style> </head> <body> <divid="content_a">52CSS.com 这是第一个DIV 向右浮动</div> <divid="content_b">52CSS.com 这是第二个DIV 向右浮动</div> </body></html>
[ 可先修改部分代码 再运行查看效果 ]


在IE中的效果如图:


在FF中的效果如图:


同时对两个元素应用向右的浮动基本保持了一致,但请注意方向性,第二个在左边,第一个在右边。

对于其它页面构成元素,浮动的原理基本是一样的,大家多动手测试,才能有更进一下的认识。学习CSS就是多动手,多写代码,必有收获!

你可能感兴趣的:(html,css,XHTML,IE,asp)