Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /html/semantics/interactive-elements/the-dialog-element/top-layer-stacking.tentative.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<!-- This tests that top layer elements are rendered above z-indexed elements
and stacked in the correct order amongst themselves. Also, layer features like
transforms and z-index are tested inside a top layer element subtree. -->
<html>
<head>
<link rel="match" href="top-layer-stacking-ref.html">
<style>
.box {
height:150px;
width:150px;
}
::backdrop {
display: none;
}
.container {
perspective: 500px;
border: 1px solid black;
background-color: magenta;
}
.transformed {
transform: rotateY(45deg);
background-color: cyan;
}
</style>
</head>
<body>
<dialog id="hiddenDialog" style="display: none; color: red">This should not be displayed.</dialog>
<dialog id="topDialog" style="position: fixed; top: 10px; z-index: -10;">
This white box is the topmost modal dialog. It should be on top of everything.
</dialog>
<div style="position: absolute; top: 0px; z-index: 3; background-color: red; left: 0; right: 0; height: 200px;">
<dialog id="bottomDialog" style="position: absolute; top: 50px; background-color: green; width: 75%; height: 400px;">
This green box is also a modal dialog. It should be rendered above the red and yellow regions.
<div class="container box">
<div class="transformed box">A transform within the dialog's subtree.</div>
</div>
<div class="box" style="position: absolute; top:300px; z-index: 2; background-color: cyan">
This shows z-index stacking within the dialog's subtree. The cyan box should be on top of the magenta one.
</div>
<div class="box" style="position: absolute; top:350px; left:50px; z-index: 1; background-color: magenta"></div>
<div style="position: fixed; top: 90px; left: 30px; background-color: green">This is part of the green dialog.</div>
</dialog>
</div>
<div style="position: absolute; top: 100px; left: 0px; right: 0px; height: 200em; background-color: yellow; z-index:1000">
</div>
<script>
document.getElementById('bottomDialog').showModal();
document.getElementById('topDialog').showModal();
document.getElementById('hiddenDialog').showModal();
</script>
</body>
</html>