【发布时间】:2011-01-15 15:22:37
【问题描述】:
我有 3 个级别的div:
-
(在下面的绿色中) 顶级
div和overflow: hidden。这是因为如果框内的某些内容(此处未显示)超出框的大小,我希望将其裁剪。 -
(下面的红色部分) 在这里面,我有
div和position: relative。这样做的唯一用途是用于下一个级别。 -
(在下面的蓝色部分) 最后一个
div我使用position: absolute从流程中取出,但我希望相对于红色的div定位(而不是页面)。
我希望将蓝色框从流程中取出并扩展到绿色框之外,但相对于红色框定位,如下所示:
但是,使用下面的代码,我得到:
去掉红框上的position: relative,现在蓝框可以脱离绿框,但不再相对于红框定位:
有没有办法:
- 将
overflow: hidden保留在绿色框中。 - 蓝色框是否扩展超出绿色框并相对于红色框定位?
完整来源:
#d1 {
overflow: hidden;
background: #efe;
padding: 5px;
width: 125px;
}
#d2 {
position: relative;
background: #fee;
padding: 2px;
width: 100px;
height: 100px;
}
#d3 {
position: absolute;
top: 10px;
background: #eef;
padding: 2px;
width: 75px;
height: 150px;
}
<br/><br/><br/>
<div id="d1" >
<div id="d2" >
<div id="d3"></div>
</div>
</div>
【问题讨论】:
-
澄清:所以您希望蓝色框(最里面的 div)能够溢出绿色框(最外面的 div),但让溢出隐藏在绿色框上?所以基本上,除了蓝框外,绿框里的所有东西都隐藏了溢出,对吗?
-
安东尼,是的,就是这样。而且我不关心红色框(#2)会发生什么,它只是在那里影响蓝色框(#3)的顶部/右侧。
-
+1 用于正确解释一个我认为很难解释但真的想要答案的问题。
-
position: fixed将忽略任何包含元素的overflow:hidden。
标签: css overflow css-position