| <!DOCTYPE html> |
| <style> |
| .container { |
| position: absolute; |
| z-index: 1; |
| width: 300px; |
| height: 300px; |
| } |
| .middle { |
| /* Must be a stacking context */ |
| position: absolute; |
| z-index: 0; |
| width: 200px; |
| height: 200px; |
| overflow: hidden; |
| } |
| .inner { |
| opacity: 0; |
| transition: opacity .1s; |
| background-color: lightblue; |
| height: 100px; |
| width: 100px; |
| } |
| .sibling { |
| position: absolute; |
| top: 0px; |
| height: 300px; |
| width: 300px; |
| opacity: 0; |
| transition: opacity 0.1s; |
| transition-delay: 0.2s; |
| background-color: lightgreen; |
| } |
| |
| .loaded .inner { |
| opacity: 1; |
| } |
| .loaded .sibling { |
| opacity: 1; |
| } |
| </style> |
| <div class="container"> |
| <div class="middle"> |
| <div class="inner"></div> |
| </div> |
| </div> |
| <div class="sibling"></div> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| getComputedStyle(document.body).color; |
| document.body.classList.add("loaded") |
| document.querySelector(".sibling").addEventListener("transitionend", function() { |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }); |
| </script> |
| This test passes if it doesn't crash. |