| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>client rect precision test</title> |
| <style> |
| #test { |
| width: 4.5px; |
| height: 4.5px; |
| background: navy; |
| } |
| </style> |
| </head> |
| <body> |
| <div id="test"></div> |
| <div id="console"> |
| Box above should be 5x5px.<br> |
| </div> |
| </body> |
| <script> |
| var testElement = document.getElementById('test'); |
| var consoleElement = document.getElementById('console'); |
| |
| function test() |
| { |
| var rect = testElement.getBoundingClientRect(); |
| var width = rect.right - rect.left; |
| |
| if (width == 4.5 && testElement.clientWidth == 5) |
| log('PASS: getBoundingClientRect reports width with subpixel precision (4.5) and clientWidth reports snapped size (5).'); |
| else |
| log('FAIL: getBoundingClientRect reports width of ' + width + ', expected 4.5. clientWidth reports width of ' + testElement.clientWidth + ', expected 5.'); |
| } |
| |
| function log(str) |
| { |
| consoleElement.appendChild(document.createTextNode(str)); |
| consoleElement.appendChild(document.createElement('br')); |
| } |
| |
| test(); |
| </script> |
| </html> |