我遇到了一个问题:当为所有子元素指定 float 时,父元素的高度就会丢失,即 去了0px。
例子:
.parent {
width: 162px;
border: 2px solid red;
}
.children {
width: 50px;
height: 50px;
border: 2px solid blue;
float: left;
}
<div class="parent">
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
</div>
为什么父元素不再考虑子元素的高度?怎么修?
父级不再考虑子元素的高度,因为浮动元素会创建一个新的堆叠上下文并脱离元素流。
有四个选项可以解决您的问题:
如果所有的子元素都有一个固定的高度,那么我们为父元素指定一个固定的高度:
最常见的选项是clearfix。创建具有以下样式的单个元素或伪元素
cler: both;:最有趣但效率最低的选项之一是为父元素指定一个浮点数,然后它也会脱离一般流程并与子元素“合并”:
最后一个选项是将溢出指定给父级。Overflow 为所选元素创建一个单独的格式化上下文,从而在应用它的元素内本地化 float 属性的效果。更多的...