Bug 24305

Summary: offsetLeft and offsetTop wrong when position of parent node is not static
Product: WebKit Reporter: boris
Component: HTML DOMAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: aharon, ap, hyatt, mitz, pennig, playmobil
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
Attachments:
Description Flags
Test case to reproduce the bug
none
Another testcase
none
Modified testcase that prints offsetParent element none

Description boris 2009-03-02 16:06:07 PST
offsetLeft and offsetTop do not include the border width of the parent node if the style property 'position' of the parent is not 'static'. In the test case the style property 'position' is changed from 'static' to 'relative'. This change makes Safari (and Firefox and Chrome) return different offsetLeft and offsetTop values. If you add the border width of 15px to those values you get the correct results again. If you open the test case in Internet Explorer and Opera you'll see that they return the same values no matter what 'position' is set to.
Comment 1 boris 2009-03-02 16:07:59 PST
Created attachment 28202 [details]
Test case to reproduce the bug
Comment 2 Jeremy Moskovich 2010-12-14 06:19:28 PST
Created attachment 76530 [details]
Another testcase
Comment 4 Alexey Proskuryakov 2010-12-14 11:24:38 PST
See also: <http://www.w3.org/TR/cssom-view/#offset-attributes>.
Comment 5 Jeremy Moskovich 2011-03-07 04:52:09 PST
Did you file a Mozilla bug for this?
Comment 6 Jeremy Moskovich 2011-03-07 05:47:57 PST
Created attachment 84938 [details]
Modified testcase that prints offsetParent element
Comment 7 Jeremy Moskovich 2011-03-07 06:46:01 PST
Looks like IE8 behaves differently in quirks and standards mode.
Comment 8 boris 2011-03-07 12:21:35 PST
Here's the Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=481076