I am trying to do positioning in JavaScript.  I am using a cumulative position function based on the classic quirksmode function that sums offsetTop and offsetLeft for each offsetParent until the top node.
However, I am running into an issue where the element I'm interested in has no offsetParent in Firefox.  In IE offsetParent exists, but offsetTop and offsetLeft all sum up to 0, so it has the same problem in effect as in Firefox.
What would cause an element that is clearly visible and usable on the screen to not have an offsetParent? Or, more practically, how can I find the position of this element in order to place a drop-down beneath it?
Edit: Here's how to reproduce one particular instance of this (not solved by the currently-accepted answer):
- Open the home page of Stack Overflow.
- Run the following code in the Console of the web browser (e.g. 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
Why is the offsetParent of that element null?
 
     
     
     
     
     
     
     
    