0

我遇到了类似于将溢出-y 添加到块元素导致宽度减小的问题。,但我希望我的右 div 水平居中。所以我有“边距:自动;” 在右边的 div 上。

在我将“overflow-y:auto”(或滚动)添加到右侧 div 之前,这一直很好。在此之前,边距是从整个页面宽度测量的。添加后,它从左侧 div 的右边缘开始测量,因此它不是以页面为中心,而是以页面的其余部分为中心。

问题的简单演示:

http://dev.bridgebase.com/barmar_test/demo-overflow.php

4

2 回答 2

4

当您在 上添加overflow属性时div,您定义了一个新的格式化上下文。如MDN 关于此主题的文档中所述,float影响仅限于特定的格式上下文。格式化上下文由上述文档中列出的特定规则定义。

position: absolute是一种解决方案,但您必须了解绝对定位的元素是相对于它们最后定位的祖先定位的(即一个具有position不同值的属性static(默认值)的元素)。还要看看 MDN来完全掌握这个概念。

您可以在 SitePoint 上阅读这篇深入解释浮动元素的文章。您应该对Floating Versus Absolute Positioning for Multi-column Layouts部分更感兴趣。

于 2012-12-19T08:24:47.377 回答
2

您可以添加位置:绝对;到侧边栏以达到与第二个示例相同的效果。

于 2012-07-03T03:20:52.243 回答