详解前端工程师常考面试题浮动清除的几种

浮动:让多个块元素显示在一行上。让多个div在一行上。

问题:Floating是off-label,所以会影响其他box,不保持原来的位置。

清除浮动的本质:解决父元素高度为0(子元素浮动后)的问题,让父元素占位。

相对于定位,在应用的时候,子绝父相,父级元素保留位置,故虽同脱标但无上述问题

DIV+CSS清除浮动是页面布局中的常见问题。相信每个高手也有自己的方法。今天总结了几种常用的方法,希望能对大家有所帮助。

方式一:父元素使用overflow属性来清除浮动

.div{

overflow:hidden;

}

先找到浮动框的父元素,然后给父元素添加一个属性:overflow:hidden,就是清除子元素浮动在父元素中对页面的影响。

注:一般不会这样,因为overflow:hidden有一个特性,离开元素所在的区域后会隐藏(overflow:hidden会隐藏多余的部分)。

方式二:额外使用标签法

.div0{

clear:both;

}

在浮动框下面再放一个标签,在这个标签中使用clear:both来清除浮动对页面的影响。

1、内部标签:浮动框的父框高度会重新支持Open。

2、外部标签:会去掉这个浮动框的效果,但是不会打开父框。

注:一般情况下不会使用此方法去除浮点数。因为这种清除浮动的方法会增加页面代码量,造成结构上的混乱。

方法三:使用伪元素来清除浮动(after意思:后来,以后)

.div1:after{

content:;//设置内容为空

height:0;//高度为0

line-height:0;//行高为0

display:block;//将文本转为块级元素

visibility:hidden;//将元素隐藏

clear:both//清除浮动

}

.div1{

zoom:1;为了兼容IE

}

方法四:使用双伪元素清除浮动给父元素定义伪类after和zoom

.div1:before,.div1:after{

content:;

display:block;

clear:both;

}

.div1{

zoom:1;

}

--------------------------------------------------------------------------------------------

总结:当我们想清除浮动并保留多余部分时,第一种方法会在某些时候隐藏多余部分。第二种方法会添加很多不必要的标签,

所以我们尝试使用第三种方法是清除浮动,为什么不选择第四种方法?因为第四种方法是第三种方法的改进版,虽然比较简单,但是没有严谨!

#Web前端面试题#

全新超实用性的Python零基础入门到就业体验课+视频+源码淘宝¥2购买已下架


转载请注明:http://www.aierlanlan.com/rzdk/4708.html