<!DOCTYPE html> <title>Layout Instability: parent and contained absolute child moved together</title> <link rel="help" href="https://wicg.github.io/layout-instability/" /> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/util.js"></script> <div id="parent" style="position: relative; width: 100px; height: 100px; background: yellow"> <div id="child" style="position: absolute; width: 100px; height: 100px; background: blue"></div> </div> <script> promise_test(async () => { const watcher = new ScoreWatcher; // Wait for the initial render to complete. await waitForAnimationFrames(2); // Modify the position of the div. const parent = document.querySelector("#parent"); parent.style.top = '100px'; // Parent contains child, so score only once. const expectedScore = computeExpectedScore(100 * (100 + 100), 100); // Observer fires after the frame is painted. assert_equals(watcher.score, 0); await watcher.promise; assert_equals(watcher.score, expectedScore); }, 'Parent and contained absolute child movement.'); </script>