Что бы сделать offsetParent нулевым?

Я пытаюсь сделать позиционирование в JavaScript. Я использую кумулятивную функцию положения на основеклассическая функция quirksmode что суммыoffsetTop а такжеoffsetLeft для каждогоoffsetParent до верхнего узла.

Однако я сталкиваюсь с проблемой, когда интересующий меня элемент не имеетoffsetParent в Firefox. В IEoffsetParent существует, ноoffsetTop а такжеoffsetLeft все суммы до 0, так что это имеет ту же проблему, что и в Firefox.

Что может привести к тому, что элемент, который четко виден и пригоден для использования на экране, не будет иметьoffsetParent? Или, на практике, как я могу найти положение этого элемента, чтобы разместить под ним раскрывающийся список?

редактироватьВот как воспроизвести один конкретный случай этого (не решенный в настоящее время принятым ответом):

Откройдомашняя страница переполнения стека.

Запустите следующий код в консоли веб-браузера (например, Chromev21):

var e = document.querySelector('div');
console.log(e);
// <div id="notify-container"></div>
do{
  var s = getComputedStyle(e);
  console.log(e.tagName,s.display,s.visibility,s.position,e.offsetParent);
} while(e=e.parentElement)
// DIV block visible fixed null
// BODY block visible static null
// HTML block visible static null

ПочемуoffsetParent этого элементаnull?

Ответы на вопрос(6)

Ваш ответ на вопрос