在使用浮动时,会出现父元素高度无法自适应子元素高度的问题,此时可以采用“清除浮动”的方法来解决。常用的两种清除浮动的方法如下:
- CSS 清除浮动
在使用浮动时,会出现父元素高度无法自适应子元素高度的问题,此时可以采用“清除浮动”的方法来解决。常用的两种清除浮动的方法如下:
1.1. 使用clear属性
给父元素添加一个样式,使用clear属性来清除浮动。
.clearfix::after {
content: "";
display: table;
clear: both;
}
这里使用伪元素 ::after,清除所有浮动的影响。
1.2. 使用overflow属性
设置父元素的 overflow 属性为 auto 或 hidden,可以清除浮动。
.parent {
overflow: hidden;
}
这种方法的局限性而言就是会隐性地限制父元素的滚动。但是它的好处时不需要清除浮动单独开一个div,也会自动适应高度。
- BFC的方法
BFC(Block Formatting Context)指的是块级格式化上下文,是HTML元素的一种渲染规则。BFC具有如下特性:
- BFC内的元素布局不会影响到BFC外元素;
- BFC区域不会与浮动元素叠放;
- BFC区域是一个独立的区块,不会影响其他元素的布局。
在BFC中可以使用以下两个方法来清除浮动:
2.1. 利用父元素成为BFC
将父元素设置为BFC(例如使用overflow、float等属性),可以解决浮动问题。
.parent {
overflow: hidden;
}
利用BFC原理,父元素在创建BFC之后会独立成一个块级盒子,不会受到浮动元素的影响,从而清除浮动。
2.2. 使用浮动
在父元素中添加一个空的块级元素,并将其浮动。这个块级元素会占据所有子元素的位置,从而实现清除浮动的效果。
<div class="parent">
<div class="child1">Child1</div>
<div class="child2">Child2</div>
<div class="clear"></div>
</div>
.parent {
border: 1px solid #000;
}
.child1, .child2 {
width: 100px;
height: 100px;
float: left;
background-color: yellow;
border: 1px solid #000;
}
.clear {
clear: both;
}
这里使用了一个名为 clear 的块级元素来清除浮动。该元素使用 clear: both 属性,使其不允许任何浮动元素占据其左、右两侧,从而使父元素获得了正确的高度。
本文标题为:CSS 清除浮动与BFC的方法
基础教程推荐
- Ajax获取回调函数无法赋值给全局变量的问题 2023-02-15
- php mysql字符集:存储国际内容的html 2023-10-27
- 基于Javascript实现返回顶部按钮 2024-01-08
- HTML5 video标签的poster属性图片铺满整个屏幕 2023-07-08
- React+高德地图实时获取经纬度,定位地址 2024-01-22
- Illustrator制作SVG的操作流程 2024-03-11
- js编写一个简单的产品放大效果代码 2024-01-20
- 图片溢出div问题的快速解决方法推荐 2024-03-11
- 详解超简单的react服务器渲染(ssr)入坑指南 2024-02-05
- 使用canvas生成含有微信头像的邀请海报没有微信头像问题 2024-01-04