我遇到了类似于将溢出-y 添加到块元素导致宽度减小的问题。,但我希望我的右 div 水平居中。所以我有“边距:自动;” 在右边的 div 上。
在我将“overflow-y:auto”(或滚动)添加到右侧 div 之前,这一直很好。在此之前,边距是从整个页面宽度测量的。添加后,它从左侧 div 的右边缘开始测量,因此它不是以页面为中心,而是以页面的其余部分为中心。
问题的简单演示:
我遇到了类似于将溢出-y 添加到块元素导致宽度减小的问题。,但我希望我的右 div 水平居中。所以我有“边距:自动;” 在右边的 div 上。
在我将“overflow-y:auto”(或滚动)添加到右侧 div 之前,这一直很好。在此之前,边距是从整个页面宽度测量的。添加后,它从左侧 div 的右边缘开始测量,因此它不是以页面为中心,而是以页面的其余部分为中心。
问题的简单演示:
当您在 上添加overflow
属性时div
,您定义了一个新的格式化上下文。如MDN 关于此主题的文档中所述,float
影响仅限于特定的格式上下文。格式化上下文由上述文档中列出的特定规则定义。
position: absolute
是一种解决方案,但您必须了解绝对定位的元素是相对于它们最后定位的祖先定位的(即一个具有position
不同值的属性static
(默认值)的元素)。还要看看 MDN来完全掌握这个概念。
您可以在 SitePoint 上阅读这篇深入解释浮动元素的文章。您应该对Floating Versus Absolute Positioning for Multi-column Layouts部分更感兴趣。
您可以添加位置:绝对;到侧边栏以达到与第二个示例相同的效果。