0

我正在尝试解决 Opera 中看起来像错误的问题。

不良行为是 Opera 在浏览器窗口上放置了一个不必要的垂直滚动条。

当我有一个外部 div 是 position:relative 并且有 overflow-y:auto 和一个嵌套的内部 div 是 position:absolute 并且恰好高于浏览器窗口的高度时,就会发生这种情况。

例如:

<style type="text/css">
    #outer {
        position: relative; 
        overflow-y: auto; 
        width: 200px; 
        height: 200px;
    }

    #inner {
        position: absolute; 
        height: 2000px; 
        width: 50%; 
        border: 2px dashed blue;
        background: deeppink;
    }
</style>

<div id="outer">
    <div id="inner">Inner</div>
</div>

这是一个演示:

http://www.jaysweeney.com.au/overflow_issue.html

有趣的是,从上面的demo可以看出,水平溢出不会出现这个问题。

这是我在 Opera 中看到的屏幕截图:

http://www.jaysweeney.com.au/screen.png

我在 OS X 上使用 Opera 11.01。

如果有人知道此问题的解决方法,请告诉我。目前我很困惑,要改变我的标记和 javascript 以不使用绝对定位需要做太多的工作。

提前致谢,

杰。

4

1 回答 1

0

看起来这确实是一个错误。

我能想到的唯一解决方法是使用 body {overflow-y: hidden;} 完全关闭浏览器窗口上的垂直滚动条

然而,这可能有点过于激进了......

于 2011-02-24T23:46:26.617 回答