CSS中清除浮动最好的办法

发布时间:2020-07-08编辑:脚本学堂
CSS论坛里讨论一个margin的问题时,发现overflow也可以用来清除浮动,此方法不单使用简单,而且FF、OP、IE7都支持,以后不再用又长兼容性又差的FF清浮动的方法了。下面就以例来说明这种方法是最好的。

特别简单,只需要在清浮动的标签加上overflow这个属性即可。
css代码
 

复制代码 代码示例:
ul{
list-style:none;
height:auto;
margin:0;p
adding:0;
background-color:#436973;
}
li{
float:left;
width:80px;
height:80px;
background-color:#83B1DF;
}
.demo{
clear:both;
border:1px solid #FF00FF;
margin-bottom:5px;
}
.overflow{
overflow:auto;
zoom:1;
background-color:#43FF73;
}
ul{
list-style:none;
height:auto;
margin:0;
padding:0;
background-color:#436973;
}
li{
float:left;
width:80px;
height:80px;
background-color:#83B1DF;
}
.demo{
clear:both;
border:1px solid #FF00FF;
margin-bottom:5px;
}
.overflow{
overflow:auto;
zoom:1;
background-color:#43FF73;
}
 

HTML代码
 

复制代码 代码示例:
<div class="demo">
<ul class="overflow">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
</div>
<div class="demo">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
</div>
 

其中zoom是为了IE6准备的。
注:一个很重要的内容,不是所有的overflow属性都有一样的效果,比如visible属性就只能对IE起作用。可以看这里Demo2,有一个问题,如果要有高度,而且内容超出高度的时候,定义auto或hidden都可能会有一些不想要的效果出现。这里提供一个解决方案:对于IE6及以下版本的IE,可以直接定义高度;对于IE7、FF、OP,可定义min-height。

CSS代码
 

复制代码 代码示例:
overflow
{
height:auto;
_height:200px;
min-height:200px;
verflow:auto;
zoom:1;
_overflow:visible;
}
 

闭合浮动元素:针对firefox用overflow:auto。针对ie用*height:1%或者zoom:1。建议overflow:auto还是少用,否则有些莫明其妙的问题。

最好用这个方法:
 

复制代码 代码示例:
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* Hides from IE-mac */
* html .clearfix {height: 1%;}
/* End hide from IE-mac */