如何解决高度塌陷问题(absolute高度塌陷)

lxf2023-11-20 12:30:01

本章介绍html如何解决高崩溃的问题。有一定的参考价值,有需要的朋友可以参考一下,希望能帮到你。

高崩问题:
当一个元素的BFC开启时,该元素会有以下特征:

1父元素的垂直外部边距不会与子元素重叠
打开BFC的元素不会被浮动元素覆盖
打开BFC的元素可以包含浮动子元素。

那么我如何打开一个元素的BFC呢?
设置元素浮动
设置元素绝对定位
设置元素为inline-block

float:left;(不好)虽然父元素可以拉伸,但是父元素的宽度会丢失;使用这种方法会使下面的元素上移。

显示:inlink-block;布局不错,但是宽度没了。但是会导致宽度的损失,不建议使用。

元素的溢出设置不可见:
overflow:auto;用最少的副作用解决父元素的高崩溃问题。

兼容性

IE6中没有BFC,但是有另外一个隐式属性叫做hasLayout。
该属性的作用类似于BFC,IE6中的浏览器通过打开hasLayout来解决问题。

Mode:
只需将元素的缩放比例设置为1: zoom:1即可。

如果在IE6中为一个元素指定了宽度,它将默认打开。

hasLayout

明确:两人都知道对他影响最大的元素波动。

解决高坍塌的方案二

可以直接在高度折叠的父元素末尾添加空白div
。因为这个div不浮动,所以可以扩展父元素的高度
然后清除,这样父元素的高度就可以被这个空白div扩展,虽然基本没有副作用


通过将after伪类设置为块级元素来解决父类折叠问题
通过after伪类选择box1的后面

.box1:after{ content:""; display:block; //清除两侧的浮动 clear:both; } /* IE6不支持伪类。 zoom:1;*/ .clearfix:after{ /*添加一个内容*/ content:""; /*转换为一个块元素*/ display:block; /*清除两侧的浮动*/ clear:both; } /*在IE6中不支持after伪类, 所以在IE6中还需要使用hasLayout来处理*/ .clearfix{ zoom:1; }

在IE6中,如果上述元素是内联的,它们就不会浮动

终极版:

//修改后的clearfix是多功能的
/既能解决高度折叠,又能保证父元素
和子元素的垂直外边距重叠

.clearfix:before, .clearfix:after{ content:""; display:table; clear:both; }

以上是html如何解决高崩溃问题的细节。更多信息请关注AdminJS.cn其他相关文章!

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!