позиция: абсолютная, чтобы быть абсолютной для браузера / окна - PullRequest
1 голос
/ 12 декабря 2010

Насколько я понимаю, position: absolute является абсолютным для первого родителя, который имеет нестатическую позицию.Если ни один из родителей не имеет указанной позиции, то она будет абсолютной для браузера / окна.

position: fixed с другой стороны будет абсолютной для браузера, однако она не работает для IE, если в режиме причуд.

Моя проблема в том, что я хочу, чтобы что-то было top:0; left:0;, но сайт находится в режиме причуд, и я редактирую только в своем личном div.(это пользовательский сайт, как MySpace).Есть много родительских div, которые имеют position: relative.

Как заставить position: absolute вести себя как position: fixed без необходимости неподвижного объекта (он может быть стационарным, если это необходимо)?*

1 Ответ

1 голос
/ 12 декабря 2010

ранние версии IE просто не поддерживают позицию: исправлено;

единственное, что я знаю, это обходной путь javacript, подобный так:

var layerPadding = 5;
function layerScrollFixEx() {
    if (layerGetScrollPosition() != (document.getElementById('layer').offsetTop - layerPadding)) {
        document.getElementById('layer').style.top = layerGetScrollPosition() + layerPadding + "px";
    }
}

function layerGetScrollPosition() {
    if (typeof window.pageYOffset != 'undefined') {
         return window.pageYOffset;
    }
    else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
         return document.documentElement.scrollTop;
    }
        else if (typeof document.body != 'undefined') {
         return document.body.scrollTop;
    }
}
layerScrollInterval = window.setInterval("layerScrollFixEx()", 1);

это фрагмент кода из некоторого кодачто я сделал некоторое время назад, когда это все еще было актуально.

...