完美clearfix
2017-11-21 本文已影响8人
ForsonLim
clearfix
清除浮动分为两种:
- 清除自身浮动
- 清除父级浮动
这里不讲空标签的方法,因为空标签还要额外添加新的标签,显得冗余。
为什么清除浮动
一个块级元素的高度如果没有设置height,那么其高度就是由里面的子元素来撑开的,如果子元素使用浮动,脱离了标准的文档流,那么父元素的高度会将其忽略,你可以使用firebug查看下如果不清除浮动,父元素会出现高度不够,那样如果设置border或者background都得不到正确的解析
简洁清除浮动
.clearfix1:before,.clearfix1:after{
content: "";
display: table;
}
.clearfix1:after{
clear: both;
overflow: hidden;
}
.clearfix1{
zoom: 1;
}
经典清除浮动
.clearfix2:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix2 { zoom: 1; } /* IE6 */
*:first-child+html .clearfix2 { zoom: 1; } /* IE7 */
overflow方式
/* overflow:auto */
#demo3{
overflow:auto;*zoom:1;
}
/*或 overflow:hidden */
#demo4{
overflow:hidden;*zoom:1;
}
inline-block方式
#demo5{
display:inline-block;*display:inline;*zoom:1;
}
这个方法和上面的其它方法会有点差异,主要是inline-block造成的。查看demo