CSS清除浮动的3种方法,参考:
方法1:
#test{clear:both;}
#test为浮动元素的下一个兄弟元素
方法2:
#test{display:block;zoom:1;overflow:hidden;}
#test为浮动元素的父元素。zoom:1也可以替换为固定的width或height
方法3:
#test{zoom:1;}
#test:after{display:block;clear:both;visibility:hidden;height:0;content:'';}
#test为浮动元素的父元素
css中清除浮动的方法有哪些
一、使用空标签清除浮动;
二、使用overflow属性
此方法有效地解决了通过空标签元素清除浮动而不得不增加无意代码的弊端。使用该方法是只需在需要清除浮动的元素中定义CSS属性:overflow:auto,即可!”zoom:1″用于兼容IE6。
三、使用after伪对象清楚浮动
此三种方法各有利弊,使用时应择优选择,比较之下第二种方法更为可取。
在HTML5 CSS3中,请简述一下清除浮动的三种方法以及各自的优缺点?
1、使用clear:both清除浮动
在代码中在放一个空的div标签,然后给这个标签设置clear:both来清除浮动对页面的影响。
优点:简单,方便兼容性好
缺点:因为会造成结构混乱,不利于后期维护
建议:一般情况下不建议使用该方法
2、利用伪元素clearfix来清除浮动
给父级元素添加了一个:after伪元素,通过清除伪元素的浮动,达到撑起父元素高度的目的
.clearfix:after{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0;.clearfix{zoom:1;}
原理:IE8以上和非IE浏览器才支持:after,zoom(IE转有属性)可解决ie6,ie7浮动问题
优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)
缺点:代码多,不少初学者不理解原理,要两句代码结合使用,才能让主流浏览器都支持
建议:推荐使用,建议定义在公共类,以减少css代码
3、父级div定义overflow方法
当给父元素设置了overflow样式,不管是overflow:hidden或overflow:auto都可以清除浮动只要它的值不为visible就可以了。
.parent-container{
/*otherstyle...*/
overflow:hidden;原理:它的本质就是建构了一个BFC,这样使得达到撑起父元素高度的效果。
优点:简单,代码少,浏览器支持好
缺点:不能和position配合使用,因为超出的尺寸的会被隐藏
建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用
4、双伪元素方法的使用
通过给父元素设置双伪元素来达到清除浮动的效果,即添加:before和:after伪元素。
.clearfix:before,.clearfix:after{
content:"";
display:block;
clear:both;与方法2相同