为了账号安全,请及时绑定邮箱和手机立即绑定

能详细讲解一下为什么要用clearFloat么?

.clearFloat{ zoom: 1;}/*设置或检索对象的缩放比例。*/
.clearFloat:after{
   display: block;
   clear: both;/*清除两侧浮动*/
   content: '';/*用来和 :after 及 :before 伪元素一起使用,在对象前或后显示内容。*/
   visibility: hidden;/*规定元素是否可见。仍占位置*/
   height: 0;

}

直接用float:left/right和clearFloat有啥区别?

正在回答

3 回答

IE6/7能通过触发hasLayout属性来实现清除浮动、避免容器高度崩塌,而通过zoom:1可以触发hasLayout。

这个是IE老版本浏览器本身的问题。

.fix { zoom: 1; }

现代浏览器则可以用

.clearfix:after {
    content: '.';
    display: block;                                        
    height: 0;
    visibility: hidden;
    clear: both;
 }

What is haslayout?

https://stackoverflow.com/questions/1794350/what-is-haslayoutzoom及IE的hasLayout

zoom及IE的hasLayout

http://www.imooc.com/qadetail/226019


0 回复 有任何疑惑可以回复我~
#1

mengniu 提问者

非常感谢!
2017-07-15 回复 有任何疑惑可以回复我~

zoom及IE的hasLayout。以上网址错了,以上是正确的

http://xfhnever.com/2014/07/30/css-zoom/


0 回复 有任何疑惑可以回复我~

元素浮动的时候float:left/right脱离文档流,如果父元素没有设置高度的话,浮动会让父元素高度塌陷,浮动的元素直接跑到父容器框外,因此需要清除浮动,让父元素包含浮动的元素。

float:left/right就是让元素产生向左或向右浮动的效果,clearFloat就是清理浮动带来的负面影响。

1 回复 有任何疑惑可以回复我~
#1

mengniu 提问者

哦,能详细讲讲zoom等属性的意义么?为什么不直接用clear:both 呢
2017-07-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

能详细讲解一下为什么要用clearFloat么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信