| <!DOCTYPE html> | |
| <meta charset="UTF-8"> | |
| <title>CSS Position Test: sticky element with top offset specified with percentage unit</title> | |
| <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> | |
| <link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos"> | |
| <link rel="match" href="reference/position-sticky-top-002-ref.html"> | |
| <meta name="flags" content=""> | |
| <style> | |
| div.scrolling-container | |
| { | |
| background-image: url("support/100x100-red.png"); | |
| background-repeat: no-repeat; | |
| display: inline-block; | |
| height: 250px; | |
| margin-right: 30px; | |
| overflow: auto; | |
| position: static; | |
| width: 150px; | |
| } | |
| div#first-scrolling-container | |
| { | |
| background-position: left bottom; | |
| } | |
| div#second-scrolling-container | |
| { | |
| background-position: left 100px; | |
| } | |
| div#third-scrolling-container | |
| { | |
| background-position: left 50px; | |
| } | |
| div.vertical-spacer | |
| { | |
| height: 100px; | |
| } | |
| div.sticky | |
| { | |
| background-color: green; | |
| height: 100px; | |
| position: sticky; | |
| top: 40%; | |
| width: 100px; | |
| } | |
| </style> | |
| <body onload="document.getElementById("first-scrolling-container").scrollTop = 50; document.getElementById("second-scrolling-container").scrollTop = 200; document.getElementById("third-scrolling-container").scrollTop = 300;"> | |
| <p>Test passes if there are 3 filled green squares and <strong>no red</strong>. | |
| <!-- | |
| first-scrolling-container: before reaching the sticking point | |
| --> | |
| <div id="first-scrolling-container" class="scrolling-container"> <!-- 150w x 250h viewport --> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| <div class="content"> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| <div id="first-sticky" class="sticky"></div> <!-- 100w x 100h --> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| </div> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| </div> | |
| <!-- | |
| second-scrolling-container: when reaching the sticking point and beyond | |
| --> | |
| <div id="second-scrolling-container" class="scrolling-container"> <!-- 150w x 250h viewport --> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| <div class="content"> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| <div id="second-sticky" class="sticky"></div> <!-- 100w x 100h --> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| </div> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| </div> | |
| <div id="third-scrolling-container" class="scrolling-container"> <!-- 150w x 250h viewport --> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| <div class="content"> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| <div id="third-sticky" class="sticky"></div> <!-- 100w x 100h --> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| </div> | |
| <div class="vertical-spacer"></div> <!-- 150w x 100h --> | |
| </div> |