在使用浮动时,会出现父元素高度无法自适应子元素高度的问题,此时可以采用“清除浮动”的方法来解决。常用的两种清除浮动的方法如下:
- 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的方法
基础教程推荐
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-12
- Js判断CSS文件加载完毕的具体实现 2023-12-27
- IE浏览器不支持getElementsByClassName的解决方法 2023-12-15
- CSS实现鼠标上移图标旋转效果 2023-12-21
- 上传头像后导航栏中头像同步(Vue中监听sessionStorage) 2023-10-08
- JavaScript代码性能优化总结(推荐) 2023-12-01
- vue-cli · Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT 192.30.253.112:443 2023-10-08
- SAP Cloud Application Programming bookshop 例子 Vue页面不能正常显示的原因分析 2023-10-08
- 详解CSS中clear:left/right的用法 2024-01-08
- ajax请求后台得到json数据后动态生成树形下拉框的方法 2023-02-22
