3 <title>CSS Containment Test: Size containment on grid containers
</title>
4 <link rel=
"author" title=
"Manuel Rego Casasnovas" href=
"mailto:rego@igalia.com">
5 <link rel=
"help" href=
"https://drafts.csswg.org/css-contain-1/#containment-size">
6 <meta name=assert
content=
"Size containment does apply to grid containers, thus their size is the same than if they don't have contents but taking into account the track sizes.">
7 <link rel=
"stylesheet" type=
"text/css" href=
"/fonts/ahem.css" />
20 <script src=
"/resources/testharness.js"></script>
21 <script src=
"/resources/testharnessreport.js"></script>
22 <script src=
"/resources/check-layout-th.js"></script>
23 <body onload=
"checkLayout('.grid')">
27 <div class=
"grid" style=
"grid: 50px / 100px;"
28 data-expected-width=
"100" data-expected-height=
"50">
31 <div class=
"grid" style=
"grid: 50px / 100px; width: 200px; height: 100px;"
32 data-expected-width=
"200" data-expected-height=
"100">
35 <div class=
"grid" style=
"grid: 50px / 100px; width: min-content; height: min-content;"
36 data-expected-width=
"100" data-expected-height=
"50">
39 <div class=
"grid" style=
"grid: 50px / 100px; overflow: scroll;"
40 data-expected-width=
"115" data-expected-height=
"65">
43 <div class=
"grid" style=
"grid: 50px / 100px; width: 200px; height: 100px; overflow: scroll;"
44 data-expected-width=
"200" data-expected-height=
"100">
47 <div class=
"grid" style=
"grid: 50px / 100px; width: min-content; height: min-content; overflow: scroll;"
48 data-expected-width=
"115" data-expected-height=
"65">
51 <div class=
"grid" style=
"grid: 50px / 100px; margin: 2px 4px;"
52 data-expected-width=
"100" data-expected-height=
"50">
55 <div class=
"grid" style=
"grid: 50px / 100px; margin: 2px 4px; border-style: solid; border-width: 5px 10px;"
56 data-expected-width=
"120" data-expected-height=
"60">
59 <div class=
"grid" style=
"grid: 50px / 100px; margin: 2px 4px; border-style: solid; border-width: 5px 10px; padding: 3px 6px;"
60 data-expected-width=
"132" data-expected-height=
"66">
63 <div class=
"grid" style=
"grid: 60% / 50%;"
64 data-expected-width=
"0" data-expected-height=
"0">
67 <div class=
"grid" style=
"grid: auto / auto;"
68 data-expected-width=
"0" data-expected-height=
"0">
71 <div class=
"grid" style=
"grid: 1fr / 2fr;"
72 data-expected-width=
"0" data-expected-height=
"0">
75 <div class=
"grid" style=
"grid: calc(50px - 10%) / calc(100px + 20%);"
76 data-expected-width=
"0" data-expected-height=
"0">
79 <div class=
"grid" style=
"grid: fit-content(50px) / fit-content(100px);"
80 data-expected-width=
"0" data-expected-height=
"0">
83 <div class=
"grid" style=
"grid: minmax(40px, 60px) / minmax(50px, 100px);"
84 data-expected-width=
"100" data-expected-height=
"60">
87 <div class=
"grid" style=
"grid: minmax(40px, 60px) / minmax(50px, 100px); width: min-content; height: min-content;"
88 data-expected-width=
"50" data-expected-height=
"60">
91 <div class=
"grid" style=
"grid: auto 50px 20% 1fr / 100px auto 10% 2fr;"
92 data-expected-width=
"100" data-expected-height=
"50">
95 <div class=
"grid" style=
"grid: repeat(3, 20px) / repeat(4, 25px);"
96 data-expected-width=
"100" data-expected-height=
"60">
99 <div class=
"grid" style=
"grid: repeat(3, 20px 10px) / repeat(2, 25px auto 25px);"
100 data-expected-width=
"100" data-expected-height=
"90">
103 <div class=
"grid" style=
"grid: repeat(auto-fill, 50px) / repeat(auto-fill, 100px);"
104 data-expected-width=
"100" data-expected-height=
"50">
107 <div class=
"grid" style=
"grid: repeat(auto-fill, 25px 25px) / repeat(auto-fill, 50px 50px);"
108 data-expected-width=
"100" data-expected-height=
"50">
111 <div class=
"grid" style=
"grid: repeat(auto-fill, 25px 20% 25px) / repeat(auto-fill, 50px 10% 50px);"
112 data-expected-width=
"100" data-expected-height=
"50">
115 <div class=
"grid" style=
"grid: repeat(auto-fit, 50px) / repeat(auto-fit, 100px);"
116 data-expected-width=
"0" data-expected-height=
"0">
119 <div class=
"grid" style=
"grid: repeat(auto-fit, 25px 20% 25px) / repeat(auto-fit, 50px 10% 50px);"
120 data-expected-width=
"0" data-expected-height=
"0">
123 <div class=
"grid" style=
"grid: 10px repeat(auto-fill, 20px) 10px / 25px repeat(auto-fill, 50px) 25px;"
124 data-expected-width=
"100" data-expected-height=
"40">
127 <div class=
"grid" style=
"grid: 50px fit-content(20px) / 100px fit-content(50px);"
128 data-expected-width=
"100" data-expected-height=
"50">
131 <div class=
"grid" style=
"grid: 50px / 100px; grid-gap: 10px 20px;"
132 data-expected-width=
"100" data-expected-height=
"50">
135 <div class=
"grid" style=
"grid: 25px 25px / 50px 50px; grid-gap: 10px 20px;"
136 data-expected-width=
"120" data-expected-height=
"60">
139 <div class=
"grid" style=
"grid: 10px repeat(2, 10px) / 20px repeat(4, 20px); grid-gap: 5px 10px;"
140 data-expected-width=
"140" data-expected-height=
"40">
143 <div class=
"grid" style=
"grid: repeat(auto-fill, 10px 20% 10px) / repeat(auto-fill, 20px 10% 20px); grid-gap: 5px 10px;"
144 data-expected-width=
"60" data-expected-height=
"30">
147 <div class=
"grid" style=
"grid: 50px repeat(auto-fill, 10px 10px) / 100px repeat(auto-fill, 20px 20px); grid-gap: 5px 10px;"
148 data-expected-width=
"160" data-expected-height=
"80">
151 <div class=
"grid" style=
"grid: repeat(auto-fill, 10px 10px) 50px / repeat(auto-fill, 20px 20px) 100px; grid-gap: 5px 10px;"
152 data-expected-width=
"160" data-expected-height=
"80">
155 <div class=
"grid" style=
"grid: 25px repeat(auto-fill, 10px 10px) 25px / 50px repeat(auto-fill, 20px 20px) 50px; grid-gap: 5px 10px;"
156 data-expected-width=
"170" data-expected-height=
"85">
159 <div class=
"grid" style=
"grid: 25px repeat(auto-fit, 10px 10px) 25px / 50px repeat(auto-fit, 20px 20px) 50px; grid-gap: 5px 10px;"
160 data-expected-width=
"110" data-expected-height=
"55">
163 <div class=
"wrapper">
164 <div class=
"grid" style=
"grid: repeat(auto-fill, 75px) / repeat(auto-fill, 100px);"
165 data-expected-width=
"100" data-expected-height=
"75">
169 <div class=
"wrapper">
170 <div class=
"grid" style=
"grid: repeat(auto-fit, 75px) / repeat(auto-fit, 100px);"
171 data-expected-width=
"0" data-expected-height=
"0">
175 <div class=
"wrapper">
176 <div class=
"grid" style=
"grid: repeat(auto-fill, 75px) / repeat(auto-fill, 100px);"
177 data-expected-width=
"100" data-expected-height=
"75">
182 <div class=
"wrapper">
183 <div class=
"grid" style=
"grid: repeat(auto-fit, 75px) / repeat(auto-fit, 100px);"
184 data-expected-width=
"0" data-expected-height=
"0">
189 <div class=
"grid" style=
"grid: auto 50px / 100px auto;"
190 data-expected-width=
"100" data-expected-height=
"50">
191 <div data-expected-width=
"100" data-expected-height=
"10"
192 data-offset-x=
"0" data-offset-y=
"0">X
</div>
193 <div data-expected-width=
"40" data-expected-height=
"10"
194 data-offset-x=
"100" data-offset-y=
"0">XX
</div>
195 <div data-expected-width=
"100" data-expected-height=
"50"
196 data-offset-x=
"0" data-offset-y=
"10">XXX
</div>
197 <div data-expected-width=
"40" data-expected-height=
"50"
198 data-offset-x=
"100" data-offset-y=
"10">XXXX
</div>