我有一个相对定位的 div,它有overflow: auto
放。在里面,我有一个 div,它充当一种下拉菜单。我希望下拉 div 在需要时扩展到父级之外,但它正在被裁剪,因为父级已经overflow: auto
.
我意识到这是正确的行为,但我不确定如何实现我想要的。下面是一些说明问题的 HTML 示例:
<div style="position: relative; height: 100px; width: 100px; background: red; overflow: auto;">
<div style="position: absolute; top: 20px; left: 20px; height: 100px; width: 100px; background: green;">
</div>
</div>
自己的 div 与上下文中的其他内容相关overflow: auto
div,所以将它们放在一起是有意义的。我想我可以使用 javascript 将下拉 div 移动到 DOM 的另一部分,但如果可以避免的话我宁愿不这样做。
你的问题是立场:亲戚父母。由于您在元素上进行了定位,因此内部框将始终保持在溢出范围内(位置:绝对是相对于最近定位的父级)。
为了避免这个问题,您可以从外部 div 中删除“position:relative”,并添加一个带有“position:relative;”的包装 div。然后您必须添加“top:0;”对你的内部 div 的声明(实际上你应该始终拥有它)。
最终结果是一个额外的 div,它看起来像这样:(您可以删除“z-index:-1”样式,我只是添加了它,以便您可以更好地看到结果)
<div style="position:relative;border:1px solid blue;">
<div style="height: 100px; width: 100px; background: red; overflow: auto;">
if there is some really long content here, it will cause overflow, but the green box will not
<div style="position:absolute; z-index:-1; left: 20px; top:0; height: 200px; width: 200px; background: green;">
</div>
</div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)