| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>CSS Test: getComputedStyle on blocks with auto margins</title> |
| <link rel="author" title="Brad Werth" href="mailto:bwerth@mozilla.com"> |
| <link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle" /> |
| <meta name="assert" content="getComputedStyle produces pixel values for margin: auto blocks"> |
| <script src="/resources/testharness.js" type="text/javascript"></script> |
| <script src="/resources/testharnessreport.js" type="text/javascript"></script> |
| <style> |
| x { |
| display: block; |
| position: relative; |
| background: grey; |
| width: 60px; |
| height: 10px; |
| } |
| y { |
| display: block; |
| background: blue; |
| width: 40px; |
| height: 10px; |
| margin: auto; |
| } |
| |
| #absolute { |
| position: absolute; |
| left: 0; |
| right: 0; |
| } |
| #relative { |
| position: relative; |
| } |
| </style> |
| </head> |
| <body> |
| <div id="log"></div> |
| <x><y id="absolute"></y></x> |
| <x><y id="relative"></y></x> |
| <script type="text/javascript"> |
| let idsToTest = [ |
| "absolute", |
| "relative", |
| ]; |
| |
| for (let id of idsToTest) { |
| let elem = document.getElementById(id); |
| let elemStyle = window.getComputedStyle(elem); |
| |
| // positioned element's auto margins should be resolved to 10px. |
| test(function() { |
| assert_equals(elemStyle.getPropertyValue("margin-left"), "10px"); |
| assert_equals(elemStyle.getPropertyValue("margin-right"), "10px"); |
| }, id + "_computed_margins"); |
| |
| // positioned element should have a left and right of 0px (as authored). |
| test(function() { |
| assert_equals(elemStyle.getPropertyValue("left"), "0px"); |
| assert_equals(elemStyle.getPropertyValue("right"), "0px"); |
| }, id + "_computed_left_and_right"); |
| } |
| </script> |
| </body> |
| </html> |