tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

flexbox-paint-ordering-002.xhtml (5362B)


      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/css-flexbox-1/#painting"/>
     14    <link rel="match" href="flexbox-paint-ordering-002-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>