在web前端开发中,清除浮动也算是一个小难题,总结了一下解决浮动的几个方式,简单粗暴,直接有效。
问题描述:当子元素使用了float属性时,父容器无法根据子元素高度而自适应高度,为了解决该问题,通常有以下三种做法:
1.让父元素也浮动起来,例如:
<div class="fl">
<div class="fl">
</div></div>
1 | .fl{ float : left ; display : inline }
|
这种方式是会让父元素也变得浮动,影响后面的布局,其实有副作用。
2.比较常见的处理,在浮动元素后面加一个清楚浮动的空标签
<div>
<div class="fl"></div>
<div class="cb"></div></div>
.fl{float:left;display:inline}.cb{clear:both}
本例中cb类是为了清楚浮动而设置的,理论上没有问题,但是多加了一个空标签,一定程度上破坏了语义化。
3.直接在父容器中清除浮动
<div class="clearfix">
<div class="fl">
</div></div>
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:jidden}.clearfix{display:inline-block}*html
.clearfix{height:1%}
这是最直接有效的方法,而且不会带来其他影响,建议采用。