在CSS中,在父容器上设置overflow:hidden是为了允许它随着浮动子容器的高度而扩展.

但它还有另一个有趣的特点,当它与margin: auto.

如果前一个同级元素是一个浮动元素,它实际上会与它并置.也就是说,如果同级为float:left,那么包含float:none overflow:hidden的容器将出现在同级的右侧,没有换行符——就像它在正常流中浮动一样.如果前一个同级为float:right,则容器将显示在同级的左侧.调整此容器的大小将准确地显示它在浮动元素之间的中心位置.假设你之前有两个sibling 姐妹,一个是float:left,另一个是float:right,容器将显示在这两个sibling 姐妹之间的中间.

这是problem...

How do I maintain that type of layout WITHOUT masking children?

通过在网上搜索,我找到了如何扩展容器的方法...但我找不到任何替代方案来保持左/右上一个子元素的居中.如果将容器设置为overflow:visible,则容器会突然忽略浮动元素的布局流,并在浮动元素的顶部显示为分层.

因此,question:

我必须有overflow:hidden个容器来保存布局...

我怎样才能让子元素们不戴面具?我需要让子元素相对于容器外的父母绝对定位.

如何才能将子级相对于父级绝对定位在容器之外……还能保留sibling 浮子一样的布局流吗?

推荐答案

您可以使用clearfix来执行与overflow: hidden相同的"布局保留"操作.

.clearfix:before,
.clearfix:after {
    content: ".";    
    display: block;    
    height: 0;    
    overflow: hidden; 
}
.clearfix:after { clear: both; }
.clearfix { zoom: 1; } /* IE < 8 */

向父级添加class="clearfix"个类,删除overflow: hidden;

Css相关问答推荐

在React中使用Tailwind自定义组件着色

CSS动画与不正确的时间比率

JavaFX如何在Tableview中使用默认和自定义的列标题CSS样式?

如何为垫子制作圆角- Select 所有角点上的下拉列表

CSS媒体查询不显示所需的输出

为什么在RadixUi上应用Tailwincss和自定义css类不起作用?

如何使用 tailwind css 修复滚动条始终位于底部?

在网格中整齐地对齐项目

使用 place-content: center 的全宽 CSS 网格项目

图像占用尽可能多的空间但保持宽高比并包含在窗口高度中

CSS网格列随着长内容改变大小

基于内容显示(show)/隐藏(hide)同级div

我应该如何组织我的 CSS 文件的内容?

CSS - 悬停穿过元素以激活悬停在被覆盖的元素上

如何更改 HTML 输入标签的字体和字体大小?

跨域 iframe 调整大小

多个和/或嵌套的 bootstrap 容器?

使用 :focus 设置外部 div 的样式?

React - 防止父子事件触发

使用 CSS 更改
高度