Status: PASS | Duration: 5ms | Subtests: 1/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-anchor-position/anchor-scroll-nested.html
<!DOCTYPE html> <html class="reftest-wait"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1"> <title>Tests anchor positioning with nested scroll containers</title> <link rel="author" href="mailto:xiaochengh@chromium.org"> <link rel="help" href="https://drafts.csswg.org/css-anchor-1/"> <link rel="match" href="reference/anchor-scroll-nested-ref.html"> <style> body { margin: 0; width: 1500px; height: 1500px; position: relative; } #outer-scroller { margin: 500px; width: 350px; height: 350px; outline: 1px solid black; overflow: scroll; } #inner-scroller { margin: 100px; width: 250px; height: 250px; outline: 1px solid black; overflow: scroll; } #anchor { margin: 200px; width: 50px; height: 50px; background-color: green; anchor-name: --anchor; } .anchored { position: absolute; width: 50px; height: 50px; left: anchor(left); position-anchor: --anchor; } .above { bottom: anchor(top); background-color: red; } .below { top: anchor(bottom); background-color: yellow; } </style> <div id="outer-scroller"> <div id="inner-scroller"> <div id="anchor"></div> <div class="anchored above"></div> </div> </div> <div class="anchored below"></div> <script> function raf() { return new Promise(resolve => requestAnimationFrame(resolve)); } async function runTest() { await raf(); await raf(); document.documentElement.scrollTop = 400; document.documentElement.scrollLeft = 400; let outerScroller = document.getElementById('outer-scroller'); outerScroller.scrollTop = 50; outerScroller.scrollLeft = 50; let innerScroller = document.getElementById('inner-scroller'); innerScroller.scrollTop = 100; innerScroller.scrollLeft = 100; document.documentElement.classList.remove('reftest-wait'); } runTest(); </script>
/css/css-anchor-position/reference/anchor-scroll-nested-ref.html
<!DOCTYPE html> <title>Tests anchor positioned scrolling with nested scroll containers</title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1"> <link rel="author" href="mailto:xiaochengh@chromium.org"> <link rel="help" href="https://drafts.csswg.org/css-anchor-1/"> <style> body { margin: 0; width: 1500px; height: 1500px; position: relative; } #outer-scroller { margin: 500px; width: 350px; height: 350px; outline: 1px solid black; overflow: scroll; } #inner-scroller { margin: 100px; width: 250px; height: 250px; outline: 1px solid black; overflow: scroll; } #anchor { margin: 200px; width: 50px; height: 50px; background-color: green; } .anchored { position: fixed; width: 50px; height: 50px; left: 250px; } .above { top: 200px; background-color: red; } .below { top: 300px; background-color: yellow; } </style> <div id="outer-scroller"> <div id="inner-scroller"> <div id="anchor"></div> <div class="anchored above"></div> </div> </div> <div class="anchored below"></div> <script> document.documentElement.scrollTop = 400; document.documentElement.scrollLeft = 400; let outerScroller = document.getElementById('outer-scroller'); outerScroller.scrollTop = 50; outerScroller.scrollLeft = 50; let innerScroller = document.getElementById('inner-scroller'); innerScroller.scrollTop = 100; innerScroller.scrollLeft = 100; </script>