CSS基础 —— 浮动布局实例详解和清除浮动的方法

非浮动布局时,包裹元素高度自适应 。

若给p标签增加浮动属性: 包裹元素高度为0,出现高度塌陷问题。在实际应用中,这并不是我们想要的效果,这时就需要清除浮动,即闭合浮动元素

解决办法:

=====

方法1:为包裹元素追加一个内容为空的元素,设置clear: both属性

这种方法通俗易懂,但添加了无意义的空标签,违背了结构和表现分离的原则 ,对于后续维护不友好。

方法2:为包裹元素增加overflow: auto/hidden属性

增加overflow属性,浮动元素会回到容器层,将容器高度撑开,达到清除浮动的效果。

方法3:为包裹元素设置浮动属性

给浮动元素的包裹元素添加浮动属性,能达到清除浮动的效果。但包裹元素整体浮动,若该包裹元素外层还有其他元素,则会影响整个页面的布局。

方法4(推荐):使用after伪元素

原理同方法1,在元素末尾添加一个看不见的块状元素来清除浮动。

zoom:1,兼容ie6和ie7及更深层次问题

.clearfix:after {

content: “”;

display: block;

height: 0;

clear: both;

visibility: hidden;

}

.clearfix {

zoom: 1;

}

方法5(优化):只要促发BFC,就能清除浮动,以上方法都是触发了BFC

dispaly: table;不需要再设置其他样式去隐藏content, 创建了匿名的表格单元,可促发BFC

.clearfix:after {

content: " ";

display: table;

clear: both;

}

也可以这么写。加上before对于清除浮动没有必要, 但可以避免浏览器顶部的空白崩溃(margin-top和上一个盒子的margin-bottom会发生重叠)。若不需要防止这种margin叠加,可以去掉before。

最后

为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值