Ошибка рендеринга браузера Opera: вертикальное переполнение и абсолютное позиционирование. Кто-нибудь знает обходной путь?

Я пытаюсь обойти ошибку в 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

Интересно, что, как видно из приведенной выше демонстрации, эта проблема не возникает при горизонтальном переполнении.

Вот скриншот того, что я вижу в Opera:

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

Я использую Opera 11.01 в OS X.

Если кто-нибудь знает способ решения этой проблемы, дайте мне знать. На данный момент я в тупике и слишком много работы, чтобы изменить мою разметку и javascript, чтобы не использовать абсолютное позиционирование.

Заранее спасибо,

Джей.


person jsw    schedule 24.02.2011    source источник


Ответы (1)


Похоже, это действительно своего рода ошибка.

Единственное обходное решение, которое я могу придумать, - это полностью отключить вертикальную полосу прокрутки в окне браузера с помощью body {overflow-y: hidden;}

Впрочем, возможно, это слишком радикальная мера ...

person andreasbovens    schedule 24.02.2011
comment
Спасибо за ваш пост. Да, это не совсем тот обходной путь, который я хотел бы, и кроме того, тело будет прокручиваться, если пользователь использует колесо мыши или, скажем, пользователь Macbook прокручивает с помощью сенсорной панели. - person jsw; 25.02.2011