Open yoowinsu opened 7 years ago
本文首发在个人博客yoowin.me
清除浮动是指清除浮动所造成的影响。
.clearfix:after{ content:""; display:block; clear:both; } .clearfix{ *zoom:1; /*兼容IE6,触发IE6中的hasLayout属性,达到BFC类似作用*/ }
父容器会形成BFC。
.clear{ overflow: hidden; }
目前也有不少开发者使用这种方法。 缺点:不适用于像下拉菜单等内部子元素有定位且超出容器的情况
.clearfix{ clear: both }
优点:简洁,浏览器兼容性好 缺点:标签无语义,不提倡!
父容器也添加浮动之后,可以清除内部的浮动,但是会影响整体布局。 缺点:拆东墙补西墙的做法,不提倡
浮动元素什么都不做,给浮动元素后面的元素添加clear属性。 缺点:高度塌陷的问题还没有解决,没有解决问题的根本——闭合浮动,所以不提倡此方法
总结,目前来看第一种方法是最佳的选择,也是我开发中一直用的方法,不过未来的趋势是流行了这么多年的“浮动+定位”布局会渐渐被“flexbox+grid”布局取代,一起迎接并见证吧!
清除浮动
清除浮动是指清除浮动所造成的影响。
清除浮动方法
目前最主流的方法:clearfix
overflow:hidden;或overflow:auto;
父容器会形成BFC。
目前也有不少开发者使用这种方法。 缺点:不适用于像下拉菜单等内部子元素有定位且超出容器的情况
添加空标签并设置样式clear:both;
优点:简洁,浏览器兼容性好 缺点:标签无语义,不提倡!
给浮动元素的父容器添加浮动
父容器也添加浮动之后,可以清除内部的浮动,但是会影响整体布局。 缺点:拆东墙补西墙的做法,不提倡
浮动元素后面的元素添加clear属性
浮动元素什么都不做,给浮动元素后面的元素添加clear属性。 缺点:高度塌陷的问题还没有解决,没有解决问题的根本——闭合浮动,所以不提倡此方法
总结,目前来看第一种方法是最佳的选择,也是我开发中一直用的方法,不过未来的趋势是流行了这么多年的“浮动+定位”布局会渐渐被“flexbox+grid”布局取代,一起迎接并见证吧!