stacking_context_02.rml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <rml>
  2. <head>
  3. <title>Stacking context and paint order 2</title>
  4. <link type="text/rcss" href="../style.rcss"/>
  5. <link rel="help (paint order)" href="https://drafts.csswg.org/css2/#painting-order" />
  6. <link rel="help (filter)" href="https://drafts.fxtf.org/filter-effects/#FilterProperty" />
  7. <meta name="Description" content="Normally, positioned elements are painted above other in-flow boxes (first row). However, when setting the 'filter' property on the inner element (second row), this element creates a new stacking context, which is rendered at the same stage as positioned boxes, but now in tree order. Thus, the positioned box becomes hidden. By changing the z-index of the positioned box (third row), or the tree-order (fourth row), the positioned box is painted on top again." />
  8. <meta name="Assert" content="The positioned box should be visible in all rows except the second one." />
  9. <style>
  10. div {
  11. border: 2dp #bbb;
  12. }
  13. .wrapper {
  14. margin: 15dp 0;
  15. background: #ddf;
  16. position: relative;
  17. padding: 5dp;
  18. }
  19. .positioned {
  20. background: #fdd;
  21. text-align: center;
  22. position: absolute;
  23. width: 110dp;
  24. height: 30dp;
  25. margin: 0 auto;
  26. top: 10dp;
  27. }
  28. .inner {
  29. background: #dfd;
  30. min-height: 3em;
  31. }
  32. .filter {
  33. filter: opacity(1);
  34. }
  35. .z1 {
  36. z-index: 1;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="wrapper">
  42. <div class="positioned">Positioned</div>
  43. <div class="inner">Unfiltered</div>
  44. </div>
  45. <div class="wrapper">
  46. <div class="positioned">Positioned</div>
  47. <div class="inner filter">Filtered</div>
  48. </div>
  49. <div class="wrapper">
  50. <div class="positioned z1">Positioned (z=1)</div>
  51. <div class="inner filter">Filtered</div>
  52. </div>
  53. <div class="wrapper">
  54. <div class="inner filter">Filtered (first)</div>
  55. <div class="positioned">Positioned</div>
  56. </div>
  57. <handle size_target="#document"/>
  58. </body>
  59. </rml>