浮动:让多个块元素显示在一行上。让多个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购买已下架