layout/reftests/w3c-css/submitted/flexbox/flexbox-paint-ordering-2.xhtml

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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       }
    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       }
    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       }
    58       .on1 { order: -1; }
    59       .o0  { order:  0; }
    60       .o1  { order:  1; }
    61       .o2  { order:  2; }
    63       .zn2 { z-index: -2; }
    64       .zn1 { z-index: -1; }
    65       .z0  { z-index:  0; }
    66       .z1  { z-index:  1; }
    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>
    77     <br/>
    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>
   105     <br/>
   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>
   125     <br/>
   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>
   146     <br/>
   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>
   175   </body>
   176 </html>

mercurial