overflow-y:当overflow-x:hidden存在时,可见不起作用

Sep*_*420 29 html css css3

在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>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/sMNyK/

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

Spr*_*tar 26

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

简而言之,当visible用于其他任何一个overflow-xoverflow-y其他东西时visible,该visible值被解释为auto.

  • 这是浏览器供应商应该由W3C修复或规范的错误吗?因为它太糟糕了...... (23认同)
  • 2020年还是一样... (17认同)
  • 2.5年后,这个bug仍然存在 (13认同)
  • 2022 年刚刚过去,问题仍然存在。:( (12认同)
  • 猜猜哪个问题在2018年底仍然存在......*facepalm* (6认同)
  • 2021 年,这比新冠疫情更严重 (5认同)
  • 距离 2023 年还有 10 天,但我仍然花了几乎一整天的时间试图找出为什么我的 CSS 不能按预期工作...... (5认同)
  • FF 52,这仍然发生.再加一年...... (4认同)
  • 我来自未来。2045年了,问题依然存在 (4认同)
  • FF 57,这里也是 (3认同)
  • 仍然是一个错误......FF72 不敢相信他们还没有修复这个问题! (3认同)
  • 这个错误仍然困扰着我的项目 (2认同)
  • 这是不可接受的! (2认同)
  • @BlaM 很高兴十年后仍在提供帮助:) (2认同)
  • 循环继续...... (2认同)
  • 2023 年 9 月,我们仍然有这种行为 (2认同)

Sco*_*ttS 5

我认为您可以通过额外的包装来获得您想要的东西,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>
Run Code Online (Sandbox Code Playgroud)

  • @user1185421--[这里有一个小提琴](http://jsfiddle.net/sMNyK/4/),其中包含一个包含弹出 div 的宽“div”。 (2认同)