周五去听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>
显示效果:

 
                    
                     
                    
                 
                    
                 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号