tor-browser

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

grid-auto-fit-columns-001.html (10161B)


      1 <!DOCTYPE html>
      2 <title>CSS Grid: auto-fit columns</title>
      3 
      4 <link rel="author" title="Sergio Villar" href="mailto: svillar@igalia.com">
      5 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
      6 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#propdef-grid-auto-columns">
      7 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#propdef-grid-auto-rows">
      8 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#propdef-grid-template-columns">
      9 <link rel="help" href="https://drafts.csswg.org/css-grid-1/#propdef-grid-column">
     10 <link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-grid-column-gap">
     11 <link rel="help" href="https://crbug.com/619930">
     12 <link rel="help" href="https://crbug.com/589460">
     13 <link rel="help" href="https://crbug.com/645746">
     14 <meta name="assert" content="Check that auto-fit columns are properly computed in a grid container"/>
     15 <link href="/css/support/grid.css" rel="stylesheet">
     16 <style>
     17 
     18 .grid {
     19    border: 2px solid magenta;
     20    width: 200px;
     21    position: relative;
     22    justify-content: start;
     23    grid-auto-columns: 157px;
     24    grid-auto-rows: 25px;
     25 }
     26 
     27 .gridOnlyAutoRepeat { grid-template-columns: repeat(auto-fit, 30px [autobar]); }
     28 .gridPercentAutoRepeat { grid-template-columns: repeat(auto-fit, 30% [autobar]); padding: 0 13px; }
     29 .gridMinMaxAutoRepeat { grid-template-columns: repeat(auto-fill, minmax(13px, 30px)); }
     30 .gridMaxMinAutoRepeat { grid-template-columns: repeat(auto-fill, minmax(30px, 13px)); }
     31 .gridMaxMinPercentAutoRepeat { grid-template-columns: repeat(auto-fill, minmax(30px, 6.5%)); }
     32 .gridAutoRepeatAndFixedBefore { grid-template-columns: 10px [foo] 20% [bar] repeat(auto-fit, [autofoo] 35px); }
     33 .gridAutoRepeatAndFixedAfter { grid-template-columns: repeat(auto-fit, [first] 30px [last]) [foo] minmax(60px, 80px) [bar] minmax(45px, max-content); }
     34 .gridAutoRepeatAndFixed { grid-template-columns: [start] repeat(2, 50px [a]) [middle] repeat(auto-fit, [autofoo] 15px [autobar]) minmax(5%, 10%) [end]; }
     35 .gridMultipleNames { grid-template-columns: [start] 20px [foo] 50% repeat(auto-fit, [bar] 20px [start foo]) [foo] 10% [end bar]; }
     36 .gridMultipleTracks { grid-template-columns: [start] 20px repeat(auto-fit, [a] 2em [b c] 10% [d]) [e] minmax(75px, 1fr) [last]; }
     37 .gridMinMaxFixedFlex { grid-template-columns: repeat(auto-fit, minmax(50px, 1fr)); }
     38 
     39 .item { background: cyan; }
     40 .item:nth-child(2n) { background: green; }
     41 
     42 .gap { grid-column-gap: 20px; }
     43 
     44 </style>
     45 
     46 <script src="/resources/testharness.js"></script>
     47 <script src="/resources/testharnessreport.js"></script>
     48 <script src="/resources/check-layout-th.js"></script>
     49 
     50 <body onload="checkLayout('.grid')">
     51 <div id="log"></div>
     52 
     53 <p>This test checks that repeat(auto-fit, ) syntax works as expected.</p>
     54 
     55 <div class="grid gridOnlyAutoRepeat">
     56    <div class="item" style="grid-column: 1 / -1" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
     57 </div>
     58 
     59 <div class="grid gridPercentAutoRepeat">
     60    <div class="item" style="grid-column: 1 / -1" data-offset-x="13" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
     61 </div>
     62 
     63 <div class="grid gridMinMaxAutoRepeat">
     64    <div class="item" style="grid-column: 1 / -1" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
     65 </div>
     66 
     67 <div class="grid gridMaxMinAutoRepeat">
     68    <div class="item" style="grid-column: 1 / -1" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
     69 </div>
     70 
     71 <div class="grid gridMaxMinPercentAutoRepeat">
     72    <div class="item" style="grid-column: 1 / -1" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
     73 </div>
     74 
     75 <div class="grid gridOnlyAutoRepeat">
     76    <div class="item" style="grid-column: 1 / span 6 autobar" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
     77 </div>
     78 
     79 <div class="grid gridOnlyAutoRepeat gap">
     80    <div class="item" style="grid-column: 1 / span 5" data-offset-x="0" data-offset-y="0" data-expected-width="357" data-expected-height="25"></div>
     81 </div>
     82 
     83 <div class="grid gridOnlyAutoRepeat gap">
     84    <div class="item" style="grid-column: autobar 2 / span 3" data-offset-x="0" data-offset-y="0" data-expected-width="257" data-expected-height="25"></div>
     85 </div>
     86 
     87 <div class="grid gridAutoRepeatAndFixedBefore">
     88    <div class="item" style="grid-column: 1 / span 6" data-offset-x="0" data-offset-y="0" data-expected-width="190" data-expected-height="25"></div>
     89 </div>
     90 
     91 <div class="grid gridAutoRepeatAndFixedBefore">
     92    <div class="item" style="grid-column: foo / autofoo" data-offset-x="10" data-offset-y="0" data-expected-width="40" data-expected-height="25"></div>
     93 </div>
     94 
     95 <div class="grid gridAutoRepeatAndFixedBefore">
     96    <div class="item" style="grid-column: bar / 5 autofoo" data-offset-x="50" data-offset-y="0" data-expected-width="297" data-expected-height="25"></div>
     97 </div>
     98 
     99 <div class="grid gridAutoRepeatAndFixedBefore gap">
    100    <div class="item" style="grid-column: 1 / span 4" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
    101 </div>
    102 
    103 <div class="grid gridAutoRepeatAndFixedBefore gap">
    104    <div class="item" style="grid-column: span 3 / 2 autofoo" data-offset-x="0" data-offset-y="0" data-expected-width="125" data-expected-height="25"></div>
    105 </div>
    106 
    107 <div class="grid gridAutoRepeatAndFixedBefore gap">
    108    <div class="item" style="grid-column: notPresent / 3 autofoo" data-offset-x="267" data-offset-y="0" data-expected-width="157" data-expected-height="25"></div>
    109 </div>
    110 
    111 <div class="grid gridAutoRepeatAndFixedAfter">
    112    <div class="item" style="grid-column: 1 / span 4" data-offset-x="0" data-offset-y="0" data-expected-width="185" data-expected-height="25"></div>
    113 </div>
    114 
    115 <div class="grid gridAutoRepeatAndFixedAfter">
    116    <div class="item" style="grid-column: first / last 2" data-offset-x="0" data-offset-y="0" data-expected-width="60" data-expected-height="25"></div>
    117 </div>
    118 
    119 <div class="grid gridAutoRepeatAndFixedAfter">
    120    <div class="item" style="grid-column: last 2 / foo" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="25"></div>
    121 </div>
    122 
    123 <div class="grid gridAutoRepeatAndFixedAfter gap">
    124    <div class="item" style="grid-column: 1 / span 3" data-offset-x="0" data-offset-y="0" data-expected-width="195" data-expected-height="25"></div>
    125 </div>
    126 
    127 <div class="grid gridAutoRepeatAndFixedAfter gap">
    128    <div class="item" style="grid-column: 3 / span 1 bar" data-offset-x="80" data-offset-y="0" data-expected-width="222" data-expected-height="25"></div>
    129 </div>
    130 
    131 <div class="grid gridAutoRepeatAndFixedAfter gap">
    132    <div class="item" style="grid-column: first / foo" data-offset-x="0" data-offset-y="0" data-expected-width="30" data-expected-height="25"></div>
    133 </div>
    134 
    135 <div class="grid gridAutoRepeatAndFixed">
    136    <div class="item" style="grid-column: 1 / span 8" data-offset-x="0" data-offset-y="0" data-expected-width="195" data-expected-height="25"></div>
    137 </div>
    138 
    139 <div class="grid gridAutoRepeatAndFixed">
    140    <div class="item" style="grid-column: a / autobar 2" data-offset-x="50" data-offset-y="0" data-expected-width="80" data-expected-height="25"></div>
    141 </div>
    142 
    143 <div class="grid gridAutoRepeatAndFixed">
    144    <div class="item" style="grid-column: autofoo / end" data-offset-x="100" data-offset-y="0" data-expected-width="95" data-expected-height="25"></div>
    145 </div>
    146 
    147 <div class="grid gridAutoRepeatAndFixed gap">
    148    <div class="item" style="grid-column: 1 / span 4"  data-offset-x="0" data-offset-y="0" data-expected-width="195" data-expected-height="25"></div>
    149 </div>
    150 
    151 <div class="grid gridAutoRepeatAndFixed gap">
    152    <div class="item" style="grid-column: autobar / -1"  data-offset-x="140" data-offset-y="0" data-expected-width="20" data-expected-height="25"></div>
    153 </div>
    154 
    155 <div class="grid gridMultipleNames">
    156    <div class="item" style="grid-column: 1 / -1"  data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="25"></div>
    157 </div>
    158 
    159 <div class="grid gridMultipleNames">
    160    <div class="item" style="grid-column: foo 3 / 4 bar"  data-offset-x="120" data-offset-y="0" data-expected-width="40" data-expected-height="25"></div>
    161 </div>
    162 
    163 <div class="grid gridMultipleNames">
    164    <div class="item" style="grid-column: -6 / span 2 start"  data-offset-x="20" data-offset-y="0" data-expected-width="140" data-expected-height="25"></div>
    165 </div>
    166 
    167 <div class="grid gridMultipleNames gap">
    168    <div class="item" style="grid-column: -4 / -2"  data-offset-x="40" data-offset-y="0" data-expected-width="140" data-expected-height="25"></div>
    169 </div>
    170 
    171 <div class="grid gridMultipleNames gap">
    172    <div class="item" style="grid-column: bar / foo 2"  data-offset-x="160" data-offset-y="0" data-expected-width="20" data-expected-height="25"></div>
    173 </div>
    174 
    175 <div class="grid gridMultipleNames gap">
    176    <div class="item" style="grid-column: foo / bar 2"  data-offset-x="40" data-offset-y="0" data-expected-width="180" data-expected-height="25"></div>
    177 </div>
    178 
    179 <div class="grid gridMultipleTracks">
    180    <div class="item" style="grid-column: e / last;"  data-offset-x="52" data-offset-y="0" data-expected-width="148" data-expected-height="25"></div>
    181    <div class="item" style="grid-column: start / b;"  data-offset-x="0" data-offset-y="25" data-expected-width="52" data-expected-height="25"></div>
    182 </div>
    183 
    184 <div class="grid gridMultipleTracks gap">
    185    <div class="item" style="grid-column: c / -1;"  data-offset-x="40" data-offset-y="0" data-expected-width="160" data-expected-height="25"></div>
    186 </div>
    187 
    188 <div class="grid gridMinMaxFixedFlex gap">
    189    <div class="item" style="grid-column-start: 1" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="25"></div>
    190 </div>
    191 
    192 <div class="grid gridMinMaxFixedFlex gap">
    193    <div class="item" style="grid-column-start: 1" data-offset-x="0" data-offset-y="0" data-expected-width="90" data-expected-height="25"></div>
    194    <div class="item" style="grid-column-start: 2" data-offset-x="110" data-offset-y="0" data-expected-width="90" data-expected-height="25"></div>
    195 </div>
    196 
    197 </body>