anchor-center-visibility-change.html (2045B)
1 <!DOCTYPE html> 2 <html class=reftest-wait> 3 <title>Tests 'anchor-center' value when target visibility changes (by changing 'display', 'visibility', or popover trigger)</title> 4 <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#valdef-justifself-y-anchor-center"> 5 <link rel="author" href="mailto:plampe@igalia.com"> 6 <link rel="author" href="mailto:kiet.ho@apple.com"> 7 <link rel="match" href="anchor-center-visibility-change-ref.html"> 8 <script src="/common/reftest-wait.js"></script> 9 <script src="/common/rendering-utils.js"></script> 10 <style> 11 .container { 12 width: 100px; 13 height: 100px; 14 border: solid 3px; 15 position: relative; 16 margin: 50px; 17 } 18 19 .anchor { 20 anchor-name: --anchor; 21 position: relative; 22 width: 50px; 23 height: 50px; 24 left: 40px; 25 top: 5px; 26 background: lime; 27 } 28 29 .target { 30 position-anchor: --anchor; 31 position: absolute; 32 } 33 34 .target-inner { 35 width: 30px; 36 height: 20px; 37 } 38 39 #target-1 { 40 justify-self: anchor-center; 41 background: cyan; 42 display: none; 43 } 44 45 #target-2 { 46 align-self: anchor-center; 47 background: blue; 48 visibility: hidden; 49 } 50 51 #target-3 { 52 align-self: anchor-center; 53 justify-self: anchor-center; 54 background: magenta; 55 56 /* Override default popover style */ 57 margin: 0; 58 padding: 0; 59 border: none; 60 } 61 </style> 62 63 <div class="container"> 64 <div class="anchor"></div> 65 <div id="target-1" class="target"> 66 <div class="target-inner"></div> 67 </div> 68 <div id="target-2" class="target"> 69 <div class="target-inner"></div> 70 </div> 71 <div id="target-3" class="target" popover> 72 <div class="target-inner"></div> 73 </div> 74 </div> 75 76 <script> 77 // Targets should be invisible initially. 78 waitForAtLeastOneFrame().then(() => { 79 // Change targets to be visible. 80 document.getElementById('target-1').style.display = 'flow'; 81 document.getElementById('target-2').style.visibility = 'visible'; 82 document.getElementById('target-3').showPopover(); 83 84 waitForAtLeastOneFrame().then(() => { 85 // Targets should be visible now. 86 takeScreenshot(); 87 }); 88 }); 89 </script>