| <!DOCTYPE html> | |
| <title>CSS Position Absolute: dynamic changes to containing block height</title> | |
| <link rel="author" href="mailto:atotic@google.com"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=933054"> | |
| <meta name="assert" content="Chrome regression: abspos descendant responds to containing block size change through line items"> | |
| <style> | |
| #container { | |
| position: relative; | |
| } | |
| #intermediate { | |
| overflow: hidden; | |
| width:200px; | |
| height:200px; | |
| background:red; | |
| } | |
| #block { | |
| height:200px; | |
| background:green; | |
| } | |
| #target { | |
| position: absolute; | |
| width: 200px; | |
| height: 100px; | |
| background:green; | |
| } | |
| </style> | |
| <!-- Test for crbug.com/933054 | |
| Relayout optimizations cause OOF descendant not to be | |
| repositioned | |
| --> | |
| <div id="container"> | |
| <div id="intermediate"> | |
| <div id="block"></div> | |
| <div id="target"></div> | |
| </div> | |
| </div> | |
| <script> | |
| document.body.offsetTop; | |
| test(() => { | |
| document.getElementById("block").style.height = "100px"; | |
| assert_equals(document.querySelector("#target").offsetTop, 100); | |
| }, '#target static position responded to parent relayout'); | |
| </script> |