44

在 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>

http://jsfiddle.net/sMNyK/

现实生活场景涉及绝对必须具有overflow-x:hidden的组件,但这将触发需要能够在y方向上脱离元素的弹出菜单。我应该将这些菜单放在其父组件之外,还是有更好的解决方法?

4

2 回答 2

42

这可能与此处解决的问题有关:CSS 溢出-x:可见;和溢出-y:隐藏;导致滚动条问题

简而言之,当使用visiblefor one overflow-xor overflow-yand something 而非visiblefor the other 时,该visible值被解释为auto

于 2013-06-10T09:02:34.893 回答
4

我认为你可以通过额外的包装来获得你想要的东西div,它可以隐藏但没有position: relative设置(见小提琴):

<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>
于 2012-07-17T12:24:25.247 回答