【发布时间】:2015-04-17 02:15:06
【问题描述】:
我有一个 div(蓝色框),它在父元素(红色框)内的页面上绝对定位,我需要将溢出 y 设置为隐藏,以便它强制 Y 轴上溢出的内容被砍掉了,但我希望任何溢出-x 的内容都可见。
HTML:
<div id="box1">
<div id="box2">
<div style="width:200px;height:640px;background:red;position:relative;">
<div style="width:200px;height:200px;background:blue;position:absolute;left:200px;top:100px;"></div>
</div>
</div>
</div>
和 CSS:
#box1 {
position:absolute;
top:0;
left:0;
bottom:0;
width:200px;
overflow-y: hidden;
border: green 10px solid;
}
#box2 {
width: 200px;
overflow-x: visible;
}
这是一个小提琴:http://jsfiddle.net/3dhdy9e9/12/
在阅读有关 Stack Overflow 上的主题/问题的一些文章后,如果将 hidden 应用于相同的 DOM 元素,显然溢出会被 scroll 覆盖,因此我将代码拆分为使用 box1 和 @987654328 @。
基本上我希望绿色框成为强制内容隐藏在 Y 轴上但允许内容在 X 轴上流出的容器:
我看不到蓝色框,因为它被隐藏从溢出 Y 中截断,即使它的子元素设置为可见/自动...
绿框应该被限制为 200px 宽,这样它高度以下的内容就会被截断,蓝框应该能够流出(通过绝对位置)而不影响绿框的宽度(如果我删除隐藏的溢出就可以了)。
【问题讨论】:
-
如果你想“上下滚动”然后overflow-y(上下)隐藏将不这样做。看着你的小提琴,在我的浏览器上它有一个 X 滚动条和一个全高框,我无法区分你真正想要实现的目标?你(或者我有吗?)把你的 x 和 y 搞混了吗?
-
我已经改写了问题以删除滚动引用(因为处理方式不同并且超出了问题的范围)。基本上我希望 Y 轴隐藏但 X 可见。
-
正如其他人所说 -
overflow-x: visible似乎做你想做的事 -
如果不将宽度值更改为
min-width,您将无法实现此更新,因为当前将框保持在最大 200 像素宽。