【遇到的问题】父div不能被撑开

如何修正DIV float以后致使的外部容器不能撑开的问题 html

在写HTML代码的时候,发如今Firefox等符合W3C标准的浏览器中,若是有一个DIV做为外部容器,内部的DIV若是设置了float样式,则外部的容器DIV由于内部没有clear,致使不能被撑开。看下面的例子:java

HTML4STRICT代码:浏览器

<div style="width:200px;border:1px solid red;">
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
</div>

显示的结果以下:字体

容器DIV没有被撑开spa

你们能够看到,做为外部容器的边框为红色的DIV,没有被撑开。这是由于内部的DIV由于float:left以后,就丢失了clear:both和display:block的样式,因此外部的DIV不会被撑开。code

解决方案1:在子元素最后增长“<div style="clear:both;"></div>
htm

<div style="width:200px;border:1px solid red;">
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="clear:both;"></div>
</div>

最后撑开的效果为:element

方案2 :get

< div class = "clearfix" >
< div class = "left" ></ div >
< div class = "right" >
</ div >

</div>it

父div增长样式clearfix

.clearfix:after {       /*在类名为“clearfix”的元素内最后面加入内容;*/
    content: ".";     /*内容为“.”就是一个英文的句号而已。也能够不写。*/
    display: block;   /*加入的这个元素转换为块级元素。*/
    clear: both;     /*清除左右两边浮动。*/
    visibility: hidden;     /*可见度设为隐藏。注意它和display:none;是有区别的。visibility:hidden;仍然占据空间,只是看不到而已;*/
    line-height: 0;    /*行高为0;*/
    height: 0;     /*高度为0;*/
    font-size:0;    /*字体大小为0;*/
}
.clearfix { *zoom:1;}   /*这是针对于IE6的,由于IE6不支持:after伪类,这个神奇的zoom:1让IE6的元素能够清除浮动来包裹内部元素。具体意思的话,不用深究,据说微软的工程师本身都没法解释清楚。height:1%效果也是同样。*/
相关文章
相关标签/搜索