深入理解float

80酷酷网    80kuku.com

  本文中所提到到的各种方法技术,我都己尽量注明出处。转载本文,请注明出处:http://gwx.showus.net/blog/article.asp?id=163

最近在使用float时屡屡爱挫,于是遍查典籍,特别是根据的十八般技巧之十三.清除浮动的指引,对float有了更深入的了解,希望大家批评指正。

1.使用float时出现的问题

一个非常常见的问题,定位使用浮动的时候,下面的层被浮动的层所覆盖,或者层里嵌套的子层超出了外层的范围。
在新窗口打开图片

解决的方法

1.陈旧的方法--使用clear:both
通常的解决办法是在浮动层后面添加一个额外元素,例如一个div或者一个br,并且定义它的样式为clear: both。

在新窗口打开图片

通常的解决办法是在浮动层后面添加一个额外元素,例如一个div或者一个br,并且定义它的样式为clear: both。
的方法--使用:after

这种方法在在文章《How To Clear Floats Without Structural Markup》中被提到。
 程序代码/*需要用到的样式表的最初设想*/
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

/*实际用到的样式表(针对不同浏览器做了优化)*/
.clearfix:after {
content: ".";
display: block;
height: 0;
clear:both;
visibility: hidden;
}
.clearfix {display: inline-table;}
/* Hides from IE-mac \*/ *
html .clearfix {height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */


在新窗口打开图片

2.的方法--使用overflow
前面的2种方法可以很好解决浮动超出的问题,但是如果当你真的需要对层或者层里的对象进行clear的时候怎么办?一种简单的方法就是用overflow属性,这个方法最初的发表在《Simple Clearing of Floats》,又在《Clearance》和《 Super simple clearing floats》中被广泛讨论。

 程序代码/*需要用到的样式表的最初设想(对IE不起作用)*/
.clearfix2{overflow: auto}

/*实际用到的样式表(针对不同浏览器做了优化)*/
.clearfix2{
_height:1%; /*height前面的下划线是必须的*/
overflow:auto;
}


在新窗口打开图片

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: