3 <title>CSS Grid Layout Test: Mininum width of grid items orthogonal
</title>
4 <link rel=
"author" title=
"Manuel Rego Casasnovas" href=
"mailto:rego@igalia.com">
5 <link rel=
"help" href=
"https://drafts.csswg.org/css-grid-1/#grid-items">
6 <meta name=
"assert" content=
"Checks that orthogonal grid items minimum width takes into account borders, padding and margins for grid containers with definite width.">
7 <link rel=
"stylesheet" href=
"support/grid.css">
12 grid:
10px
10px / minmax(auto,
0px);
15 .grid
> div:nth-child(
1) { background: cyan; writing-mode: vertical-lr; }
16 .grid
> div:nth-child(
2) { background: magenta; }
18 .width60 { width:
60px; }
19 .minWidth60 { min-width:
60px; }
21 .marginLeft5 { margin-left:
5px; }
22 .marginRight10 { margin-right:
10px; }
24 .paddingLeft6 { padding-left:
6px; }
25 .paddingRight3 { padding-right:
3px; }
27 .borderLeft2, .borderRight4 { border: solid yellow
0px; }
28 .borderLeft2 { border-left-width:
2px; }
29 .borderRight4 { border-right-width:
4px; }
31 <script src=
"/resources/testharness.js"></script>
32 <script src=
"/resources/testharnessreport.js"></script>
33 <script src=
"/resources/check-layout-th.js"></script>
35 <body onload=
"checkLayout('.grid')">
39 <h3>Direction LTR
</h3>
41 <pre>Item width:
60px;
</pre>
44 <div class=
"width60" data-expected-width=
"60"></div>
45 <div data-expected-width=
"60"></div>
48 <pre>Item min-width:
60px;
</pre>
51 <div class=
"minWidth60" data-expected-width=
"60"></div>
52 <div data-expected-width=
"60"></div>
55 <pre>Item width:
60px;
& margin-left:
5px;
</pre>
58 <div class=
"width60 marginLeft5" data-expected-width=
"60"></div>
59 <div data-expected-width=
"65"></div>
62 <pre>Item min-width:
60px;
& margin-left:
5px;
</pre>
65 <div class=
"minWidth60 marginLeft5" data-expected-width=
"60"></div>
66 <div data-expected-width=
"65"></div>
69 <pre>Item width:
60px;
& margin-right:
10px;
</pre>
72 <div class=
"width60 marginRight10" data-expected-width=
"60"></div>
73 <div data-expected-width=
"70"></div>
76 <pre>Item min-width:
60px;
& margin-right:
10px;
</pre>
79 <div class=
"minWidth60 marginRight10" data-expected-width=
"60"></div>
80 <div data-expected-width=
"70"></div>
83 <pre>Item width:
60px;
& margin-left:
5px;
& margin-right:
10px;
</pre>
86 <div class=
"width60 marginLeft5 marginRight10" data-expected-width=
"60"></div>
87 <div data-expected-width=
"75"></div>
90 <pre>Item min-width:
60px;
& margin-left:
5px;
& margin-right:
10px;
</pre>
93 <div class=
"minWidth60 marginLeft5 marginRight10" data-expected-width=
"60"></div>
94 <div data-expected-width=
"75"></div>
97 <pre>Item width:
60px;
& padding-left:
6px;
</pre>
100 <div class=
"width60 paddingLeft6" data-expected-width=
"66"></div>
101 <div data-expected-width=
"66"></div>
104 <pre>Item min-width:
60px;
& padding-left:
6px;
</pre>
107 <div class=
"minWidth60 paddingLeft6" data-expected-width=
"66"></div>
108 <div data-expected-width=
"66"></div>
111 <pre>Item width:
60px;
& padding-right:
3px;
</pre>
114 <div class=
"width60 paddingRight3" data-expected-width=
"63"></div>
115 <div data-expected-width=
"63"></div>
118 <pre>Item min-width:
60px;
& padding-right:
3px;
</pre>
121 <div class=
"minWidth60 paddingRight3" data-expected-width=
"63"></div>
122 <div data-expected-width=
"63"></div>
125 <pre>Item width:
60px;
& padding-left:
6px;
& padding-right:
3px;
</pre>
128 <div class=
"width60 paddingLeft6 paddingRight3" data-expected-width=
"69"></div>
129 <div data-expected-width=
"69"></div>
132 <pre>Item min-width:
60px;
& padding-left:
6px;
& padding-right:
3px;
</pre>
135 <div class=
"minWidth60 paddingLeft6 paddingRight3" data-expected-width=
"69"></div>
136 <div data-expected-width=
"69"></div>
139 <pre>Item width:
60px;
& border-left-width:
2px;
</pre>
142 <div class=
"width60 borderLeft2" data-expected-width=
"62"></div>
143 <div data-expected-width=
"62"></div>
146 <pre>Item min-width:
60px;
& border-left-width:
2px;
</pre>
149 <div class=
"minWidth60 borderLeft2" data-expected-width=
"62"></div>
150 <div data-expected-width=
"62"></div>
153 <pre>Item width:
60px;
& border-right-width:
4px;
</pre>
156 <div class=
"width60 borderRight4" data-expected-width=
"64"></div>
157 <div data-expected-width=
"64"></div>
160 <pre>Item min-width:
60px;
& border-right-width:
4px;
</pre>
163 <div class=
"minWidth60 borderRight4" data-expected-width=
"64"></div>
164 <div data-expected-width=
"64"></div>
167 <pre>Item width:
60px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
170 <div class=
"width60 borderLeft2 borderRight4" data-expected-width=
"66"></div>
171 <div data-expected-width=
"66"></div>
174 <pre>Item min-width:
60px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
177 <div class=
"minWidth60 borderLeft2 borderRight4" data-expected-width=
"66"></div>
178 <div data-expected-width=
"66"></div>
181 <pre>Item width:
60px;
& margin-left:
5px;
& margin-right:
10px;
& padding-left:
6px;
& padding-right:
3px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
184 <div class=
"width60 marginLeft5 marginRight10 paddingLeft6 paddingRight3 borderLeft2 borderRight4" data-expected-width=
"75"></div>
185 <div data-expected-width=
"90"></div>
188 <pre>Item min-width:
60px;
& margin-left:
5px;
& margin-right:
10px;
& padding-left:
6px;
& padding-right:
3px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
191 <div class=
"minWidth60 marginLeft5 marginRight10 paddingLeft6 paddingRight3 borderLeft2 borderRight4" data-expected-width=
"75"></div>
192 <div data-expected-width=
"90"></div>
195 <h3>Direction RTL
</h3>
197 <pre>Item width:
60px;
</pre>
199 <div class=
"grid directionRTL">
200 <div class=
"width60" data-expected-width=
"60"></div>
201 <div data-expected-width=
"60"></div>
204 <pre>Item min-width:
60px;
</pre>
206 <div class=
"grid directionRTL">
207 <div class=
"minWidth60" data-expected-width=
"60"></div>
208 <div data-expected-width=
"60"></div>
211 <pre>Item width:
60px;
& margin-left:
5px;
</pre>
213 <div class=
"grid directionRTL">
214 <div class=
"width60 marginLeft5" data-expected-width=
"60"></div>
215 <div data-expected-width=
"65"></div>
218 <pre>Item min-width:
60px;
& margin-left:
5px;
</pre>
220 <div class=
"grid directionRTL">
221 <div class=
"minWidth60 marginLeft5" data-expected-width=
"60"></div>
222 <div data-expected-width=
"65"></div>
225 <pre>Item width:
60px;
& margin-right:
10px;
</pre>
227 <div class=
"grid directionRTL">
228 <div class=
"width60 marginRight10" data-expected-width=
"60"></div>
229 <div data-expected-width=
"70"></div>
232 <pre>Item min-width:
60px;
& margin-right:
10px;
</pre>
234 <div class=
"grid directionRTL">
235 <div class=
"minWidth60 marginRight10" data-expected-width=
"60"></div>
236 <div data-expected-width=
"70"></div>
239 <pre>Item width:
60px;
& margin-left:
5px;
& margin-right:
10px;
</pre>
241 <div class=
"grid directionRTL">
242 <div class=
"width60 marginLeft5 marginRight10" data-expected-width=
"60"></div>
243 <div data-expected-width=
"75"></div>
246 <pre>Item min-width:
60px;
& margin-left:
5px;
& margin-right:
10px;
</pre>
248 <div class=
"grid directionRTL">
249 <div class=
"minWidth60 marginLeft5 marginRight10" data-expected-width=
"60"></div>
250 <div data-expected-width=
"75"></div>
253 <pre>Item width:
60px;
& padding-left:
6px;
</pre>
255 <div class=
"grid directionRTL">
256 <div class=
"width60 paddingLeft6" data-expected-width=
"66"></div>
257 <div data-expected-width=
"66"></div>
260 <pre>Item min-width:
60px;
& padding-left:
6px;
</pre>
262 <div class=
"grid directionRTL">
263 <div class=
"minWidth60 paddingLeft6" data-expected-width=
"66"></div>
264 <div data-expected-width=
"66"></div>
267 <pre>Item width:
60px;
& padding-right:
3px;
</pre>
269 <div class=
"grid directionRTL">
270 <div class=
"width60 paddingRight3" data-expected-width=
"63"></div>
271 <div data-expected-width=
"63"></div>
274 <pre>Item min-width:
60px;
& padding-right:
3px;
</pre>
276 <div class=
"grid directionRTL">
277 <div class=
"minWidth60 paddingRight3" data-expected-width=
"63"></div>
278 <div data-expected-width=
"63"></div>
281 <pre>Item width:
60px;
& padding-left:
6px;
& padding-right:
3px;
</pre>
283 <div class=
"grid directionRTL">
284 <div class=
"width60 paddingLeft6 paddingRight3" data-expected-width=
"69"></div>
285 <div data-expected-width=
"69"></div>
288 <pre>Item min-width:
60px;
& padding-left:
6px;
& padding-right:
3px;
</pre>
290 <div class=
"grid directionRTL">
291 <div class=
"minWidth60 paddingLeft6 paddingRight3" data-expected-width=
"69"></div>
292 <div data-expected-width=
"69"></div>
295 <pre>Item width:
60px;
& border-left-width:
2px;
</pre>
297 <div class=
"grid directionRTL">
298 <div class=
"width60 borderLeft2" data-expected-width=
"62"></div>
299 <div data-expected-width=
"62"></div>
302 <pre>Item min-width:
60px;
& border-left-width:
2px;
</pre>
304 <div class=
"grid directionRTL">
305 <div class=
"minWidth60 borderLeft2" data-expected-width=
"62"></div>
306 <div data-expected-width=
"62"></div>
309 <pre>Item width:
60px;
& border-right-width:
4px;
</pre>
311 <div class=
"grid directionRTL">
312 <div class=
"width60 borderRight4" data-expected-width=
"64"></div>
313 <div data-expected-width=
"64"></div>
316 <pre>Item min-width:
60px;
& border-right-width:
4px;
</pre>
318 <div class=
"grid directionRTL">
319 <div class=
"minWidth60 borderRight4" data-expected-width=
"64"></div>
320 <div data-expected-width=
"64"></div>
323 <pre>Item width:
60px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
325 <div class=
"grid directionRTL">
326 <div class=
"width60 borderLeft2 borderRight4" data-expected-width=
"66"></div>
327 <div data-expected-width=
"66"></div>
330 <pre>Item min-width:
60px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
332 <div class=
"grid directionRTL">
333 <div class=
"minWidth60 borderLeft2 borderRight4" data-expected-width=
"66"></div>
334 <div data-expected-width=
"66"></div>
337 <pre>Item width:
60px;
& margin-left:
5px;
& margin-right:
10px;
& padding-left:
6px;
& padding-right:
3px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
339 <div class=
"grid directionRTL">
340 <div class=
"width60 marginLeft5 marginRight10 paddingLeft6 paddingRight3 borderLeft2 borderRight4" data-expected-width=
"75"></div>
341 <div data-expected-width=
"90"></div>
344 <pre>Item min-width:
60px;
& margin-left:
5px;
& margin-right:
10px;
& padding-left:
6px;
& padding-right:
3px;
& border-left-width:
2px;
& border-right-width:
4px;
</pre>
346 <div class=
"grid directionRTL">
347 <div class=
"minWidth60 marginLeft5 marginRight10 paddingLeft6 paddingRight3 borderLeft2 borderRight4" data-expected-width=
"75"></div>
348 <div data-expected-width=
"90"></div>