tor-browser

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

grid-gutters-and-tracks-001.html (11870B)


      1 <!DOCTYPE html>
      2 <title>CSS Grid: grid gutters and tracks.</title>
      3 <link rel="author" title="Sergio Villar" href="mailto:svillar@igalia.com"/>
      4 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#gutters"/>
      5 <meta name="assert" content="Check that gutters contribute to the size of the grid containers and spanning items, and do not alter grid items positioning, margin computation and track sizing."/>
      6 <link rel="stylesheet" href="/css/support/grid.css"/>
      7 <link rel="stylesheet" href="/css/support/width-keyword-classes.css"/>
      8 <link rel="stylesheet" href="/fonts/ahem.css" type="text/css"/>
      9 <style>
     10 body { margin: 0px; }
     11 
     12 .grid { padding: 3px 7px 5px 1px; border: solid yellow 1px; }
     13 
     14 .normalGap { grid-gap: normal; }
     15 
     16 .gridGap { grid-gap: 16px; }
     17 
     18 .gridRowColumnGaps {
     19    grid-row-gap: 12px;
     20    grid-column-gap: 23px;
     21 }
     22 
     23 .gridMultipleCols { grid-template-columns: 30px minmax(10px, 50px) 80px; }
     24 .gridMultipleRows { grid-template-rows: 90px 70px min-content; }
     25 .gridAutoAuto { grid-template: auto auto / auto auto; }
     26 .gridMultipleFixed { grid-template: [first] 37px [foo] 57px [bar] 77px [last] / [first] 15px [foo] 25px [bar] 35px [last]; }
     27 .gridFixed100 { grid-template: repeat(2, 100px) / repeat(2, 100px); }
     28 .gridWithPercent { grid-template-columns: 10px 20% repeat(2, 30px); }
     29 .gridWithDoublePercent { grid-template-columns: 60% 40%; }
     30 .gridWithRowPercent { grid-template: 10px 20% 30px / 20px; }
     31 .gridWithRowDoublePercent { grid-template: 60% 40% / 20px; }
     32 
     33 .width220 { width: 220px; }
     34 .height100 { height: 100px; }
     35 .gridAutoRows20 { grid-auto-rows: 20px; }
     36 
     37 .thirdRowThirdColumn { grid-area: 3 / 3; }
     38 .firstRowThirdColumn { grid-area: 1 / 3; }
     39 
     40 div.grid > div { font: 10px/1 Ahem; }
     41 
     42 .gridItemMargins {
     43    margin: 20px 30px 40px 50px;
     44    width: 20px;
     45    height: 40px;
     46 }
     47 
     48 </style>
     49 
     50 <script src="/resources/testharness.js"></script>
     51 <script src="/resources/testharnessreport.js"></script>
     52 <script src="/resources/check-layout-th.js"></script>
     53 <script type="text/javascript">
     54    setup({ explicit_done: true });
     55 </script>
     56 
     57 <body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })">
     58 
     59 <!-- Check that gutters contribute to the size of the grid containers. -->
     60 
     61 <div style="position: relative;">
     62    <div class="grid normalGap gridMultipleCols fit-content" data-expected-width="170" data-expected-height="10"></div>
     63    <div class="grid normalGap gridMultipleRows" style="width: 400px" data-expected-width="410" data-expected-height="170"></div>
     64 </div>
     65 
     66 <div style="position: relative">
     67    <div class="grid gridRowColumnGaps fit-content" data-expected-width="103" data-expected-height="62">
     68        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="20" data-expected-height="10">XX</div>
     69        <div class="secondRowSecondColumn" data-offset-x="45" data-offset-y="26" data-expected-width="50" data-expected-height="30">XX<br>X<br>XX XX</div>
     70    </div>
     71 </div>
     72 
     73 <div style="position: relative">
     74    <div class="grid gridMultipleCols gridRowColumnGaps fit-content" data-expected-width="216" data-expected-height="94">
     75        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="30" data-expected-height="10">XX</div>
     76        <div class="secondRowSecondColumn" data-offset-x="55" data-offset-y="26" data-expected-width="50" data-expected-height="20">XX<br>XX XX</div>
     77        <div class="thirdRowThirdColumn" data-offset-x="128" data-offset-y="58" data-expected-width="80" data-expected-height="30">XXXX XX<br>X<br>XX XX</div>
     78    </div>
     79 </div>
     80 
     81 <div style="position: relative">
     82    <div class="grid gridMultipleRows gridRowColumnGaps fit-content" data-expected-width="196" data-expected-height="224">
     83        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="20" data-expected-height="90">XX</div>
     84        <div class="secondRowSecondColumn" data-offset-x="45" data-offset-y="106" data-expected-width="50" data-expected-height="70">XX<br>XX XX</div>
     85        <div class="thirdRowThirdColumn" data-offset-x="118" data-offset-y="188" data-expected-width="70" data-expected-height="30">XXXX XX<br>X<br>XX XX</div>
     86    </div>
     87 </div>
     88 
     89 <!-- Check that gutters do not alter grid items positioning. -->
     90 <div style="position: relative">
     91    <div class="grid gridMultipleFixed gridRowColumnGaps">
     92        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="15" data-expected-height="37">X X X</div>
     93        <div class="secondRowSecondColumn" data-offset-x="40" data-offset-y="53" data-expected-width="25" data-expected-height="57">X X</div>
     94        <div class="thirdRowThirdColumn" data-offset-x="88" data-offset-y="122" data-expected-width="35" data-expected-height="77">XXX XX X XX XX</div>
     95    </div>
     96 </div>
     97 
     98 <div style="position: relative">
     99    <div class="grid gridMultipleFixed gridRowColumnGaps">
    100        <div style="grid-row: 2; grid-column: -2 / -1;" data-offset-x="88" data-offset-y="53" data-expected-width="35" data-expected-height="57">X X X</div>
    101        <div style="grid-row: 1 / bar; grid-column: bar" data-offset-x="88" data-offset-y="4" data-expected-width="35" data-expected-height="106">X XX X XX XX XX X</div>
    102        <div style="grid-row: -2; grid-column-end: foo" data-offset-x="2" data-offset-y="122" data-expected-width="15" data-expected-height="77">X X</div>
    103    </div>
    104 </div>
    105 
    106 <!-- Check that gutters do not alter track sizing. -->
    107 <div style="position: relative">
    108    <div class="grid gridRowColumnGaps fit-content" data-expected-width="166" data-expected-height="94">
    109        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="20" data-expected-height="10">XX</div>
    110        <div class="secondRowSecondColumn" data-offset-x="45" data-offset-y="26" data-expected-width="30" data-expected-height="20">X X<br>X X</div>
    111        <div class="thirdRowThirdColumn" data-offset-x="98" data-offset-y="58" data-expected-width="60" data-expected-height="30">XXX XX<br>X<br>XX XX</div>
    112    </div>
    113 </div>
    114 
    115 <div style="position: relative">
    116    <div class="grid gridRowColumnGaps gridMultipleCols gridMultipleRows fit-content" data-expected-width="216" data-expected-height="224">
    117        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="30" data-expected-height="90">XX</div>
    118        <div class="secondRowSecondColumn" data-offset-x="55" data-offset-y="106" data-expected-width="50" data-expected-height="70">X X<br>X X</div>
    119        <div class="thirdRowThirdColumn" data-offset-x="128" data-offset-y="188" data-expected-width="80" data-expected-height="30">XXX XX<br>X<br>XX XX</div>
    120    </div>
    121 </div>
    122 
    123 <div style="position: relative">
    124    <div class="grid gridWithPercent width220 gridRowColumnGaps gridAutoRows20" data-expected-width="230" data-expected-height="94">
    125        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="10" data-expected-height="20"></div>
    126        <div class="secondRowSecondColumn" data-offset-x="35" data-offset-y="36" data-expected-width="44" data-expected-height="20"></div>
    127        <div class="thirdRowThirdColumn" data-offset-x="102" data-offset-y="68" data-expected-width="30" data-expected-height="20"></div>
    128    </div>
    129 </div>
    130 
    131 <div style="position: relative">
    132    <div class="grid gridWithRowPercent gridRowColumnGaps width220 height100" data-expected-width="230" data-expected-height="110">
    133        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="20" data-expected-height="10"></div>
    134        <div class="secondRowFirstColumn" data-offset-x="2" data-offset-y="26" data-expected-width="20" data-expected-height="20"></div>
    135        <div class="thirdRowAutoColumn" data-offset-x="2" data-offset-y="58" data-expected-width="20" data-expected-height="30"></div>
    136    </div>
    137 </div>
    138 
    139 <!-- Check that gutters contribute to the size of spanning items. -->
    140 <div style="position: relative">
    141    <div class="grid gridGap gridAutoAuto constrainedContainer">
    142        <div class="secondRowBothColumn" data-offset-x="2" data-offset-y="30" data-expected-width="50" data-expected-height="10">XXXXX</div>
    143        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="17" data-expected-height="10">X</div>
    144        <div class="firstRowSecondColumn" data-offset-x="35" data-offset-y="4" data-expected-width="17" data-expected-height="10">X</div>
    145    </div>
    146 </div>
    147 
    148 <div style="position: relative">
    149    <div class="grid gridMultipleFixed gridRowColumnGaps">
    150        <div style="grid-row: 2; grid-column: 1 / -1;" data-offset-x="2" data-offset-y="53" data-expected-width="121" data-expected-height="57">XXXX X XXXX</div>
    151        <div style="grid-row: first / last; grid-column-start: 2" data-offset-x="40" data-offset-y="4" data-expected-width="25" data-expected-height="195">X XX X XX X</div>
    152        <div style="grid-row: 1 / 3; grid-column: first / bar" data-offset-x="2" data-offset-y="4" data-expected-width="63" data-expected-height="106">XXX XX<br>XX<br>XXXXX</div>
    153    </div>
    154 </div>
    155 
    156 <div style="position: relative">
    157    <div class="grid gridWithDoublePercent width220 gridRowColumnGaps gridAutoRows20" data-expected-width="230" data-expected-height="62">
    158        <div class="firstRowFirstColumn sizedToGridArea" data-offset-x="2" data-offset-y="4" data-expected-width="132" data-expected-height="20"></div>
    159        <div class="secondRowSecondColumn sizedToGridArea" data-offset-x="157" data-offset-y="36" data-expected-width="88" data-expected-height="20"></div>
    160        <div class="secondRowBothColumn sizedToGridArea" data-offset-x="2" data-offset-y="36" data-expected-width="243" data-expected-height="20"></div>
    161    </div>
    162 </div>
    163 
    164 <div style="position: relative">
    165    <div class="grid gridWithRowDoublePercent gridRowColumnGaps width220 height100" data-expected-width="230" data-expected-height="110">
    166        <div class="firstRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="20" data-expected-height="60"></div>
    167        <div class="secondRowFirstColumn" data-offset-x="2" data-offset-y="76" data-expected-width="20" data-expected-height="40"></div>
    168        <div class="bothRowFirstColumn" data-offset-x="2" data-offset-y="4" data-expected-width="20" data-expected-height="112"></div>
    169    </div>
    170 </div>
    171 
    172 <!-- Check that gutters do not interfere with margins computation. -->
    173 <div style="position: relative">
    174    <div class="grid gridFixed100 gridGap">
    175        <div class="gridItemMargins firstRowFirstColumn" data-offset-x="52" data-offset-y="24" data-expected-width="20" data-expected-height="40"></div>
    176        <div class="gridItemMargins firstRowSecondColumn" data-offset-x="168" data-offset-y="24" data-expected-width="20" data-expected-height="40"></div>
    177        <div class="gridItemMargins secondRowFirstColumn" data-offset-x="52" data-offset-y="140" data-expected-width="20" data-expected-height="40"></div>
    178        <div class="gridItemMargins secondRowSecondColumn" data-offset-x="168" data-offset-y="140" data-expected-width="20" data-expected-height="40"></div>
    179    </div>
    180 </div>
    181 
    182 <div style="position: relative">
    183    <div class="grid gridFixed100 verticalRL directionRTL gridGap">
    184        <div class="gridItemMargins firstRowFirstColumn" data-offset-x="168" data-offset-y="140" data-expected-width="20" data-expected-height="40"></div>
    185        <div class="gridItemMargins firstRowSecondColumn" data-offset-x="168" data-offset-y="24" data-expected-width="20" data-expected-height="40"></div>
    186        <div class="gridItemMargins secondRowFirstColumn" data-offset-x="52" data-offset-y="140" data-expected-width="20" data-expected-height="40"></div>
    187        <div class="gridItemMargins secondRowSecondColumn" data-offset-x="52" data-offset-y="24" data-expected-width="20" data-expected-height="40"></div>
    188    </div>
    189 </div>
    190 
    191 </body>