|
1 <?xml version="1.0" encoding="UTF-8"?> |
|
2 <!-- |
|
3 Any copyright is dedicated to the Public Domain. |
|
4 http://creativecommons.org/publicdomain/zero/1.0/ |
|
5 --> |
|
6 <!-- Testcase with flex items containing overlapping content, with |
|
7 "order" and "z-index" set on some of them, to test how that affects |
|
8 paint-order. --> |
|
9 <html xmlns="http://www.w3.org/1999/xhtml"> |
|
10 <head> |
|
11 <title>CSS Test: Testing the paint-order of overlapping flex items with 'order' and 'z-index' set</title> |
|
12 <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/> |
|
13 <link rel="help" href="http://www.w3.org/TR/css3-flexbox/#painting"/> |
|
14 <link rel="match" href="flexbox-paint-ordering-2-ref.xhtml"/> |
|
15 <style> |
|
16 body { |
|
17 line-height: 0; |
|
18 } |
|
19 |
|
20 .flexbox { |
|
21 display: inline-flex; |
|
22 width: 20px; |
|
23 height: 10px; |
|
24 border: 2px solid gray; |
|
25 margin-bottom: 10px; |
|
26 margin-right: 10px; |
|
27 } |
|
28 .a { |
|
29 width: 10px; |
|
30 height: 10px; |
|
31 background: lightblue; |
|
32 min-width: 0; |
|
33 } |
|
34 .b { |
|
35 width: 10px; |
|
36 height: 10px; |
|
37 background: pink; |
|
38 min-width: 0; |
|
39 } |
|
40 |
|
41 .aKid { |
|
42 margin-left: 3px; |
|
43 margin-top: 3px; |
|
44 width: 10px; |
|
45 height: 10px; |
|
46 background: steelblue; |
|
47 border: 1px solid blue; |
|
48 } |
|
49 .bKid { |
|
50 margin-left: 3px; |
|
51 margin-top: 6px; |
|
52 width: 10px; |
|
53 height: 10px; |
|
54 background: violet; |
|
55 border: 1px solid purple; |
|
56 } |
|
57 |
|
58 .on1 { order: -1; } |
|
59 .o0 { order: 0; } |
|
60 .o1 { order: 1; } |
|
61 .o2 { order: 2; } |
|
62 |
|
63 .zn2 { z-index: -2; } |
|
64 .zn1 { z-index: -1; } |
|
65 .z0 { z-index: 0; } |
|
66 .z1 { z-index: 1; } |
|
67 |
|
68 </style> |
|
69 </head> |
|
70 <body> |
|
71 <!-- order not set: --> |
|
72 <div class="flexbox"> |
|
73 <div class="a"><div class="aKid"/></div> |
|
74 <div class="b"><div class="bKid"/></div> |
|
75 </div> |
|
76 |
|
77 <br/> |
|
78 |
|
79 <!-- order set, but it matches content order, so it shouldn't matter: --> |
|
80 <div class="flexbox"> |
|
81 <div class="a on1"><div class="aKid"/></div> |
|
82 <div class="b"><div class="bKid"/></div> |
|
83 </div |
|
84 ><div class="flexbox"> |
|
85 <div class="a o0"><div class="aKid"/></div> |
|
86 <div class="b"><div class="bKid"/></div> |
|
87 </div |
|
88 ><div class="flexbox"> |
|
89 <div class="a o0"><div class="aKid"/></div> |
|
90 <div class="b o0"><div class="bKid"/></div> |
|
91 </div |
|
92 ><div class="flexbox"> |
|
93 <div class="a o2"><div class="aKid"/></div> |
|
94 <div class="b o2"><div class="bKid"/></div> |
|
95 </div |
|
96 ><div class="flexbox"> |
|
97 <div class="a"><div class="aKid"/></div> |
|
98 <div class="b o0"><div class="bKid"/></div> |
|
99 </div |
|
100 ><div class="flexbox"> |
|
101 <div class="a"><div class="aKid"/></div> |
|
102 <div class="b o1"><div class="bKid"/></div> |
|
103 </div> |
|
104 |
|
105 <br/> |
|
106 |
|
107 <!-- order set to reverse of content-order: --> |
|
108 <div class="flexbox"> |
|
109 <div class="a o1"><div class="aKid"/></div> |
|
110 <div class="b"><div class="bKid"/></div> |
|
111 </div |
|
112 ><div class="flexbox"> |
|
113 <div class="a"><div class="aKid"/></div> |
|
114 <div class="b on1"><div class="bKid"/></div> |
|
115 </div |
|
116 ><div class="flexbox"> |
|
117 <div class="a o0"><div class="aKid"/></div> |
|
118 <div class="b on1"><div class="bKid"/></div> |
|
119 </div |
|
120 ><div class="flexbox"> |
|
121 <div class="a o2"><div class="aKid"/></div> |
|
122 <div class="b o1"><div class="bKid"/></div> |
|
123 </div> |
|
124 |
|
125 <br/> |
|
126 |
|
127 <!-- order set to reverse of content-order, AND with z-index set on |
|
128 one or both items, but not such that it changes the paint order --> |
|
129 <div class="flexbox"> |
|
130 <div class="a o1 z0"><div class="aKid"/></div> |
|
131 <div class="b"><div class="bKid"/></div> |
|
132 </div |
|
133 ><div class="flexbox"> |
|
134 <div class="a o1 z1"><div class="aKid"/></div> |
|
135 <div class="b"><div class="bKid"/></div> |
|
136 </div |
|
137 ><div class="flexbox"> |
|
138 <div class="a o1 z0"><div class="aKid"/></div> |
|
139 <div class="b z0"><div class="bKid"/></div> |
|
140 </div |
|
141 ><div class="flexbox"> |
|
142 <div class="a o1 z1"><div class="aKid"/></div> |
|
143 <div class="b z0"><div class="bKid"/></div> |
|
144 </div> |
|
145 |
|
146 <br/> |
|
147 |
|
148 <!-- order set to reverse of content-order, AND with z-index set on |
|
149 one or both items, in such a way that it affects paint order --> |
|
150 <div class="flexbox"> |
|
151 <!-- 'a' is behind the container's border --> |
|
152 <div class="a o1 zn1"><div class="aKid"/></div> |
|
153 <div class="b"><div class="bKid"/></div> |
|
154 </div |
|
155 ><div class="flexbox"> |
|
156 <!-- 'a' and 'b' are both behind the container's border --> |
|
157 <div class="a o1 zn1"><div class="aKid"/></div> |
|
158 <div class="b zn1"><div class="bKid"/></div> |
|
159 </div |
|
160 ><div class="flexbox"> |
|
161 <!-- 'a' and 'b' are both behind the container's border, |
|
162 and 'a' is behind 'b' despite coming after it in the 'order' |
|
163 ordering--> |
|
164 <div class="a o1 zn2"><div class="aKid"/></div> |
|
165 <div class="b zn1"><div class="bKid"/></div> |
|
166 </div |
|
167 ><div class="flexbox"> |
|
168 <!-- 'a' and 'b' are both in front of the container's border, |
|
169 and 'a' is behind 'b' despite coming after it in the 'order' |
|
170 ordering--> |
|
171 <div class="a o1 z0"><div class="aKid"/></div> |
|
172 <div class="b z1"><div class="bKid"/></div> |
|
173 </div> |
|
174 |
|
175 </body> |
|
176 </html> |