Wobei ich die Aussage mit einem IE 7 nicht nachvollziehen kann, es sei denn ich hab den Fehler falsch verstanden: hier mein Test.
Try this:
<!DOCTYPE html>
<html>
<head>
<script>
[code lang=javascript]var oldOffsetParent, oldTarget;
document.onmouseover = function (e) {
e = e || window.event;
var target = e.target || e.srcElement;
if (oldOffsetParent) {
oldOffsetParent.className = "";
}
var offsetParent = target.offsetParent;
offsetParent.className = "offsetParent";
oldOffsetParent = offsetParent;
if (oldTarget) {
oldTarget.className = "";
}
target.className = "target";
oldTarget = target;
document.getElementById("ausgabe").innerHTML = target.nodeName + (target.id ? "#" + target.id : "") + " to " + offsetParent.nodeName + (offsetParent.id ? "#" + offsetParent.id : "") + ": " + target.offsetTop;
};
</script>
<style>
html { margin: 0; padding: 0; border: 0 none; }
body { margin: 0; padding: 20px; }
#rels { border: 1px solid black; padding-bottom: 40px; }
#rels div { position: relative; top: 20px; left: 20px; padding-bottom: 40px; background-color: #edd; }
#rels p { margin: 0; background-color: #ccd; line-height: 20px; }
#rels .offsetParent { background-color: red; }
#rels .target { background-color: blue; }
#ausgabe { margin-top: 20px; }
</style>
</head>
<body>
<div id="rels">
<div id="rel1">
<p>bla</p>
<div id="rel2">
<p>bla</p>
<div id="rel3">
<p>bla</p>
</div>
</div>
</div>
</div>
<div id="ausgabe"></div>
</body>
</html>[/code]
Geh mal mit der Maus auf die p-Elemente. Da kommen Phantasiezahlen im IE < 8.
offsetTop für Element in einem Element position:relative wird falsch wiedergegeben. offsetParent verweist zwar auf das Element mit position:relative, aber offsetTop bezieht sich nicht auf dieses Element.
Die top- und left-Angaben sind übrigens nicht nötig, offsetTop ist auch ohne sie fehlerhaft.
Aber ich sehe gerade: Wenn die Element mit position:relative hasLayout haben (einfach mal zoom:1 für #rels div vergeben), wird offsetTop korrekt kalkuliert. LOL. Das bringt uns ja schonmal weiter und liefert:
http://lists.w3.org/Archives/Public/www-style/2008Apr/0468.html
http://annevankesteren.nl/2006/05/offset
Mathias