summaryrefslogtreecommitdiffstats
path: root/layout/reftests/css-grid/grid-max-sizing-flex-007.html
blob: a2f39e95be3f48e4832d64b734a24ba84df4f1d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
  -->
<!DOCTYPE html>
<html><head>
  <meta charset="utf-8">
  <title>CSS Grid Test: Testing track flex max-sizing with min/max</title>
  <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1309407">
  <link rel="help" href="http://dev.w3.org/csswg/css-grid/#algo-flex-tracks">
  <link rel="match" href="grid-max-sizing-flex-007-ref.html">
  <style type="text/css">
.grid {
   display: grid;
   border:1px dashed;
   margin: 3px;
}
.rows {
   float: left;
   grid: minmax(10px, 1fr) minmax(10px, 4fr) / 50px;
   grid-row-gap: 33px;
}
.cols {
   display: inline-grid;
   grid: 50px / minmax(10px, 1fr) minmax(10px, 4fr);
   grid-column-gap: 33px;
}

.item:nth-child(1) { background-color: purple; }
.item:nth-child(2) { background-color: blue; }

</style>

</head><body>

<!--
  NOTE: The resulting size (in the relevant axis) is 83px for all tests below
        in the "If the free space is an indefinite length" algo here:
        https://drafts.csswg.org/css-grid/#algo-flex-tracks
  These tests verifies that we then also apply min/max sizes per the spec:
  "If using this flex fraction would cause the grid to be smaller than the grid
   container’s min-width/height (or larger than the grid container’s max-width/
   height), then redo this step, treating the free space as definite and the
   available grid space as equal to the grid container’s content box size when
   it’s sized to its min-width/height (max-width/height)."
-->

<pre>These grids should look the same:</pre>
<div class="grid rows" style="max-height:70px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid rows" style="min-height:70px; max-height:60px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid rows" style="height:70px">
  <div class="item"></div>
  <div class="item"></div>
</div>

<br clear="all">

<pre>These grids should look the same:</pre>
<div class="grid rows" style="min-height:90px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid rows" style="min-height:90px; max-height:60px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid rows" style="height:90px">
  <div class="item"></div>
  <div class="item"></div>
</div>

<br clear="all">

<pre>These grids should look the same:</pre>
<div class="grid cols"  style="max-width:70px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid cols"  style="min-width:70px; max-width:60px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid cols"  style="width:70px">
  <div class="item"></div>
  <div class="item"></div>
</div>

<pre>These grids should look the same:</pre>
<div class="grid cols"  style="min-width:90px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid cols"  style="min-width:90px; max-width:60px">
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="grid cols"  style="width:90px">
  <div class="item"></div>
  <div class="item"></div>
</div>

<pre>The first 6 grids should look the same:</pre>
<div class="grid rows" style="grid: 1fr / 30px; min-height:83px">
  <div class="item"></div>
</div>
<div class="grid rows" style="grid: 10px 1fr / 30px; min-height:83px">
  <div class="item" style="grid-row:span 2"></div>
</div>
<div class="grid rows" style="grid: 1fr / 30px; max-height:30px; min-height:83px">
  <div class="item"></div>
</div>
<div class="grid rows" style="grid: 1fr 1fr / 30px; max-height:83px">
  <div class="item" style="grid-row:span 2"><div style="height:90px"></div></div>
</div>
<div class="grid rows" style="grid: 1fr auto / 30px; max-height:83px">
  <div class="item" style="grid-row:span 2"><div style="height:90px"></div></div>
</div>
<div class="grid rows" style="grid: 10px 1fr / 30px; max-height:83px">
  <div class="item" style="grid-row:span 2"><div style="height:90px"></div></div>
</div>
<div class="grid rows" style="grid: 1fr 1fr / 30px; grid-row-gap:10px; max-height:83px">
  <div class="item" style="grid-row:span 2"><div style="height:40px"></div></div>
  <div class="item"><div style="height:40px"></div></div>
</div>

</body></html>