1235

何处是我家!

导航

CSS:清除浮动

Posted on 2013-06-30 22:40  yn1235  阅读(221)  评论(0)    收藏  举报

 

   周五去听css样式的培训,讲到float导致div不能被撑开的问题,特记录如下:

 

在写HTML代码的时候,如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有clear,导致不能被撑开。

 

代码:

<html>
<body>

<div style="border:2px solid red;" class0="clearfix">
<div style="float:left;width:80px;height:80px;border:1px solid blue;">DIV1</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">DIV2</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">DIV3</div>
</div>

</body>
</html>

显示效果:

 

大家可以看到,作为外部容器的边框为红色的DIV,没有被撑开。

这是因为内部的DIV因为float:left之后,就丢失了clear:both和display:block的样式,所以外部的DIV不会被撑开。 

我们想让外部容器的DIV随着内部DIV增多而增加高度,要怎么解决呢?

 

解决办法:

代码:

<html>
<body>

<style>
.clearfix:after {
content: " ";
display: block;
clear: both;
height: 0;
}
.clearfix {
zoom: 1;
}
</style>

<div style="border:2px solid red;" class="clearfix">
<div style="float:left;width:80px;height:80px;border:1px solid blue;">DIV1</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">DIV2</div>
<div style="float:left;width:80px;height:80px;border:1px solid blue;">DIV3</div>
</div>

</body>
</html>

 

显示效果: