mirror of
https://github.com/servo/servo.git
synced 2025-10-15 07:50:20 +01:00
89 lines
1.9 KiB
HTML
89 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html class='reftest-wait'>
|
|
<title>Sticky elements inside fixed ancestors shouldn't account for scroll</title>
|
|
<link rel="match" href="position-sticky-fixed-ancestor-ref.html" />
|
|
<link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos" />
|
|
<link rel="help" href="https://crbug.com/1019142">
|
|
<meta name="assert" content="This test checks that a sticky element inside a fixed subtree doesn't scroll with the viewport "/>
|
|
|
|
<script src="/common/reftest-wait.js"></script>
|
|
<script src="resources/ref-rectangle.js"></script>
|
|
|
|
|
|
<style>
|
|
body,html {
|
|
margin: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.sticky {
|
|
background: green;
|
|
position: sticky;
|
|
bottom: 50vh;
|
|
width: 100px;
|
|
height: 10%;
|
|
}
|
|
|
|
.spacer {
|
|
height: 90%;
|
|
}
|
|
.long {
|
|
height: 600vh;
|
|
}
|
|
|
|
.position-parent {
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 100%;
|
|
height: 100%;
|
|
top: 100vh;
|
|
background-color: lightgrey;
|
|
}
|
|
|
|
.container {
|
|
width: 100px;
|
|
height: 100%;
|
|
background-color: grey;
|
|
}
|
|
|
|
button {
|
|
position: fixed;
|
|
left: 20px;
|
|
top: 20px;
|
|
}
|
|
|
|
.fixed {
|
|
position: fixed;
|
|
top: 25vh;
|
|
}
|
|
</style>
|
|
|
|
<div>You should see a green box below. No blue should be visible.</div>
|
|
<div class="position-parent">
|
|
<div class="container">
|
|
<div class="spacer"></div>
|
|
<div class="sticky"></div>
|
|
</div>
|
|
</div>
|
|
<div class="long"></div>
|
|
<button id="button">Toggle Fixed</button>
|
|
<script>
|
|
function toggleFixed() {
|
|
document.querySelector('.position-parent').classList.toggle('fixed');
|
|
}
|
|
|
|
document.getElementById('button').addEventListener('click', toggleFixed);
|
|
|
|
requestAnimationFrame(() => {
|
|
window.scrollTo(0, document.querySelector('.long').clientHeight);
|
|
createIndicatorForStickyElements(document.querySelectorAll('.sticky'));
|
|
requestAnimationFrame(() => {
|
|
toggleFixed();
|
|
takeScreenshot();
|
|
});
|
|
});
|
|
</script>
|
|
</html>
|