RESOLVED WONTFIX 147136
offsetWidth for fractionally positioned elements returns different values depending on left position
https://bugs.webkit.org/show_bug.cgi?id=147136
Summary offsetWidth for fractionally positioned elements returns different values dep...
Chad von Nau
Reported 2015-07-20 19:12:09 PDT
Demo here: http://jsfiddle.net/sbel/sykrLf2u/6/ Steps to reproduce the problem: 1. Create an absolutely positioned element at left: 0. 2. Get offsetWidth of element. 2. Move element to left: .1px 3. Get offsetWidth of element. What is the expected behavior? The offsetWidths should match. What went wrong? When the element is positioned at .1px, it's offsetWidth is 1px larger. Notes: The demo comes from this SO post about the issue: http://stackoverflow.com/q/26124678 This bug is also present in Chrome, but not Firefox or IE. This bug will likely resolve itself if offsetWidth gains support for subpixel values. The Chrome team seems to be working on this, not sure if you guys are as well.
Attachments
Chad von Nau
Comment 1 2015-07-20 19:16:49 PDT
Simon Fraser (smfr)
Comment 2 2015-07-21 13:13:55 PDT
Having offsetWidth return non-integral values (bug 132895) was a web-breaking change (bug 134651).
Chad von Nau
Comment 3 2015-08-05 02:18:29 PDT
The chromium team has marked their version of this issue as a Won't Fix: https://code.google.com/p/chromium/issues/detail?id=512307#c5 eae@chromium.org: This is intentional as we snap elements to the pixel grid. The offset* properties return the snapped values and as such are dependent on the rendered size, and by extension, position. I don't like offsetWidth changing based on position, but their logic seems sound to me. Maybe it's best to bury the issue here as well.
Simon Fraser (smfr)
Comment 4 2015-08-05 08:38:10 PDT
Yes, agreed.
Note You need to log in before you can comment on or make changes to this bug.