扫码关注官方订阅号
欢迎选择我的课程,让我们一起见证您的进步~~
绝对定位和浮动不一样,绝对定位是完全脱离文档流所以,在子元素采取绝对定位的情况下,是不可能直接靠内容撑开父容器高度的。ps:楼上关于清除浮动回答的很详细,但是在这里感觉答非所问
关键字: css 清除浮动
由于浮动元素不占据正常的文档流空间,所以其父元素的尺寸是不会被浮动元素撑起来的。
解决办法:
p.clear
.clear { clear:both; height: 0; line-height: 0; font-size: 0; } .float { float: left; }
<p> <p class="float">Float element</p> <p class="clear"></p> </p>
overflow: hidden
display: table
<p style="overflow: hidden;"> <p class="float">Float element</p> </p>
父元素添加类.clearfix
.clearfix
.clearfix:before, .clearfix:after { content: " "; display: table; } .clearfix:after { clear: both; } /* for ie 6/7 */ .clearfix { zoom: 1; }
<p class="clearfix"> <p class="float">Float element</p> </p>
浮动是一个将要被淘汰的属性,你可以选择flex布局
如果是float导致的父元素高度塌陷,则可以通过清除浮动使父元素被撑开,但是如果是由于absolute导致的父元素高度塌陷,则无法清除,因为绝对定位是完全脱离文档流。
float
absolute
首先。p的高度默认是由内部的子元素撑开来的。 .line的内部为空,高度为0,.icon和.make绝对定位之后脱离文档流,不占位置(上天了),.a下面的内容的高度为0。所以高度为0
.a和.b是独立的两块兄弟,得到相同的高度从自动上来说不可能。
PS:absolute != float
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
绝对定位和浮动不一样,绝对定位是完全脱离文档流
所以,在子元素采取绝对定位的情况下,是不可能直接靠内容撑开父容器高度的。ps:楼上关于清除浮动回答的很详细,但是在这里感觉答非所问
关键字: css 清除浮动
由于浮动元素不占据正常的文档流空间,所以其父元素的尺寸是不会被浮动元素撑起来的。
解决办法:
1 在浮动元素后面插入一个空
p.clear2 父元素
overflow: hidden或者display: table来闭合浮动3 巧用伪类
父元素添加类
.clearfix浮动是一个将要被淘汰的属性,你可以选择flex布局
如果是
float导致的父元素高度塌陷,则可以通过清除浮动使父元素被撑开,但是如果是由于absolute导致的父元素高度塌陷,则无法清除,因为绝对定位是完全脱离文档流。首先。p的高度默认是由内部的子元素撑开来的。
.line的内部为空,高度为0,
.icon和.make绝对定位之后脱离文档流,不占位置(上天了),
.a下面的内容的高度为0。所以高度为0
.a和.b是独立的两块兄弟,得到相同的高度从自动上来说不可能。
PS:absolute != float