| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Any copyright is dedicated to the Public Domain. |
| http://creativecommons.org/publicdomain/zero/1.0/ |
| --> |
| <!-- Testcase with flex items containing overlapping content, with |
| "order" and "z-index" set on some of them, to test how that affects |
| paint-order. --> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title>CSS Test: Testing the paint-order of overlapping flex items with 'order' and 'z-index' set</title> |
| <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/> |
| <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#painting"/> |
| <link rel="match" href="flexbox-paint-ordering-002-ref.xhtml"/> |
| <style> |
| body { |
| line-height: 0; |
| } |
| |
| .flexbox { |
| display: inline-flex; |
| width: 20px; |
| height: 10px; |
| border: 2px solid gray; |
| margin-bottom: 10px; |
| margin-right: 10px; |
| } |
| .a { |
| width: 10px; |
| height: 10px; |
| background: lightblue; |
| min-width: 0; |
| } |
| .b { |
| width: 10px; |
| height: 10px; |
| background: pink; |
| min-width: 0; |
| } |
| |
| .aKid { |
| margin-left: 3px; |
| margin-top: 3px; |
| width: 10px; |
| height: 10px; |
| background: steelblue; |
| border: 1px solid blue; |
| } |
| .bKid { |
| margin-left: 3px; |
| margin-top: 6px; |
| width: 10px; |
| height: 10px; |
| background: violet; |
| border: 1px solid purple; |
| } |
| |
| .on1 { order: -1; } |
| .o0 { order: 0; } |
| .o1 { order: 1; } |
| .o2 { order: 2; } |
| |
| .zn2 { z-index: -2; } |
| .zn1 { z-index: -1; } |
| .z0 { z-index: 0; } |
| .z1 { z-index: 1; } |
| |
| </style> |
| </head> |
| <body> |
| <!-- order not set: --> |
| <div class="flexbox"> |
| <div class="a"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div> |
| |
| <br/> |
| |
| <!-- order set, but it matches content order, so it shouldn't matter: --> |
| <div class="flexbox"> |
| <div class="a on1"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o0"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o0"><div class="aKid"/></div> |
| <div class="b o0"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o2"><div class="aKid"/></div> |
| <div class="b o2"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a"><div class="aKid"/></div> |
| <div class="b o0"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a"><div class="aKid"/></div> |
| <div class="b o1"><div class="bKid"/></div> |
| </div> |
| |
| <br/> |
| |
| <!-- order set to reverse of content-order: --> |
| <div class="flexbox"> |
| <div class="a o1"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a"><div class="aKid"/></div> |
| <div class="b on1"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o0"><div class="aKid"/></div> |
| <div class="b on1"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o2"><div class="aKid"/></div> |
| <div class="b o1"><div class="bKid"/></div> |
| </div> |
| |
| <br/> |
| |
| <!-- order set to reverse of content-order, AND with z-index set on |
| one or both items, but not such that it changes the paint order --> |
| <div class="flexbox"> |
| <div class="a o1 z0"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o1 z1"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o1 z0"><div class="aKid"/></div> |
| <div class="b z0"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <div class="a o1 z1"><div class="aKid"/></div> |
| <div class="b z0"><div class="bKid"/></div> |
| </div> |
| |
| <br/> |
| |
| <!-- order set to reverse of content-order, AND with z-index set on |
| one or both items, in such a way that it affects paint order --> |
| <div class="flexbox"> |
| <!-- 'a' is behind the container's border --> |
| <div class="a o1 zn1"><div class="aKid"/></div> |
| <div class="b"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <!-- 'a' and 'b' are both behind the container's border --> |
| <div class="a o1 zn1"><div class="aKid"/></div> |
| <div class="b zn1"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <!-- 'a' and 'b' are both behind the container's border, |
| and 'a' is behind 'b' despite coming after it in the 'order' |
| ordering--> |
| <div class="a o1 zn2"><div class="aKid"/></div> |
| <div class="b zn1"><div class="bKid"/></div> |
| </div |
| ><div class="flexbox"> |
| <!-- 'a' and 'b' are both in front of the container's border, |
| and 'a' is behind 'b' despite coming after it in the 'order' |
| ordering--> |
| <div class="a o1 z0"><div class="aKid"/></div> |
| <div class="b z1"><div class="bKid"/></div> |
| </div> |
| |
| </body> |
| </html> |