高度塌陷和BFC

tech2023-01-20  104

1.什么是高度塌陷?

在浮动的布局中,父元素的高度默认被子元素撑开的,当子元素浮动之后,其会完全脱离文档流,子元素从文档流中脱离,将会无法撑起父元素的高度,导致父元素的高度丢失。父元素高度丢失以后,其下的元素会自动上移,导致页面的布局混乱所以高度塌陷是浮动布局中比较常见的问题,这个问题我们必须要进行处理

2.怎么处理?

把父元素的高度写死,就不会塌陷,但是并没有真正解决这个问题我们希望父元素的高度可以跟随子元素一起变化

3.BFC(Block Formatting Content)块级格式化环境

CSS中的一个隐含的属性,可以为一个元素开启BFC,开启BFC该元素会开启一个独立的布局区域

元素开启BFC的特点 -开启BFC的元素不会被浮动的元素所覆盖 -开启BFC的元素子元素和父元素的外边距不会被重叠 -开启BFC的元素可以包含浮动的子元素

可以通过一些特殊的方式开启BFC

设置元素的浮动(不推荐):

float:left

将元素设置为行内块元素:(不推荐)

dispaly:inline-block;

将元素的overflow设置为一个非visible的值: 常用方式是将元素设置为overflow:hidden 开启其BFC 以使其可以包含浮动的元素

overflow:hidden;

当box1向左浮动后,下面的box2就自动上移,因为大小一样所以box1就将box2给遮住了。

如果不希望box1盖住box2,就给box2加一个overflow:hidden,开启box2的一个BFC,不被浮动的元素所覆盖。

<style> .box1{ width:200px; height:200px; background-color: #bfa; float:left; } .box2{ width:200px; height:200px; background-color:orange; overflow:hidden; } </style>

<style> .box1{ width:200px; height:200px; background-color: #bfa; overflow:hidden; } .box3{ width:100px; height:100px; background-color:yellow; margin-top:100px; } </style> </head> <body> <div class="box1"> <div class="box3"></div> </div> </body>

最新回复(0)