在Chrome或Firefox中无法正常运行。这有什么解决方法吗?
<!DOCTYPE html>
<html>
<head></head>
<body>
<h3>overflow-y:visible</h3>
with overflow-x:hidden
<div style="overflow-x:hidden;overflow-y:visible;width:100px;height:100px; position:relative;background:#666;">
<div style="top:20px;left:20px; width:420px;height:420px;position:absolute;background:#420;">
</div>
</div>
without overflow-x:hidden
<div style="overflow-y:visible;width:100px;height:100px;position:relative;background:#666;">
<div style="top:20px;left:20px; width:420px;height:420px;position:absolute;background:#420;">
</div>
</div>
</body>
</html>
现实生活场景涉及绝对必须具有overflow-x:hidden的组件,但这将触发弹出菜单,这些菜单需要能够在y方向上脱离元素。我应该将这些菜单放在其父组件之外,还是有更好的解决方法?
答案 0 :(得分:25)
这可能与此处讨论的问题有关:CSS overflow-x: visible; and overflow-y: hidden; causing scrollbar issue
简而言之,当visible
或overflow-x
使用overflow-y
而另一个使用visible
以外的其他内容时,visible
值会被解释为{ {1}}。
答案 1 :(得分:3)
我认为你可以通过额外的包裹div
来获得你想要的东西,它可以隐藏但没有设置position: relative
(see fiddle):
<div style="overflow-y:visible;width:100px;height:100px;position:relative;background:#666;">
<div style="overflow-x:hidden">
ooooooooooooooooooooooooooooooooooooooooooooooo
<div style="top:20px;left:20px; width:420px;height:420px;position:absolute;background:#420;">
</div>
</div>
</div>