| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Containment Test: Size containment on grid containers with percentages</title> |
| <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> |
| <link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size"> |
| <meta name="assert" content="Checks that grid containers with size containment and their grid items are sized correctly when the track sizing functions contain percentages."> |
| <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> |
| <style> |
| .grid { |
| display: grid; |
| contain: size; |
| font: 75px/1 Ahem; |
| } |
| .min-content { |
| height: min-content; |
| width: min-content; |
| } |
| .max-content { |
| height: max-content; |
| width: max-content; |
| } |
| .fixed { |
| height: 100px; |
| width: 100px; |
| } |
| .percent { |
| grid: 50% / 200%; |
| } |
| .calc { |
| grid: calc(100px + 50%) / calc(100px + 200%); |
| } |
| .minmax-percent-fixed { |
| grid: minmax(50%, 100px) / minmax(200%, 100px); |
| } |
| .minmax-fixed-percent { |
| grid: minmax(100px, 50%) / minmax(100px, 200%); |
| } |
| .minmax-percent-flex { |
| grid: minmax(50%, 1fr) / minmax(200%, 1fr); |
| } |
| .minmax-percent-intrinsic { |
| grid: minmax(50%, min-content) / minmax(200%, min-content); |
| } |
| .minmax-intrinsic-percent { |
| grid: minmax(min-content, 50%) / minmax(min-content, 200%); |
| } |
| .fit-content { |
| grid: fit-content(50%) / fit-content(200%); |
| } |
| </style> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/check-layout-th.js"></script> |
| <body onload="checkLayout('.grid')"> |
| |
| <div id="log"></div> |
| |
| <div class="grid percent min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid percent min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid percent max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid percent max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid percent fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="50" data-expected-width="200"></div> |
| </div> |
| <div class="grid percent fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="50" data-expected-width="200">XXXX</div> |
| </div> |
| |
| <div class="grid calc min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="100" data-expected-width="100"></div> |
| </div> |
| <div class="grid calc min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="100" data-expected-width="100">XXXX</div> |
| </div> |
| <div class="grid calc max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="100" data-expected-width="100"></div> |
| </div> |
| <div class="grid calc max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="100" data-expected-width="100">XXXX</div> |
| </div> |
| <div class="grid calc fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="150" data-expected-width="300"></div> |
| </div> |
| <div class="grid calc fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="150" data-expected-width="300">XXXX</div> |
| </div> |
| |
| <div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0"> |
| <div data-expected-height="100" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0"> |
| <div data-expected-height="100" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid minmax-percent-fixed max-content" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="200"></div> |
| </div> |
| <div class="grid minmax-percent-fixed max-content" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="200">XXXX</div> |
| </div> |
| <div class="grid minmax-percent-fixed fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="200"></div> |
| </div> |
| <div class="grid minmax-percent-fixed fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="200">XXXX</div> |
| </div> |
| |
| <div class="grid minmax-fixed-percent min-content" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="100"></div> |
| </div> |
| <div class="grid minmax-fixed-percent min-content" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="100">XXXX</div> |
| </div> |
| <div class="grid minmax-fixed-percent max-content" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="100"></div> |
| </div> |
| <div class="grid minmax-fixed-percent max-content" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="100">XXXX</div> |
| </div> |
| <div class="grid minmax-fixed-percent fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="100"></div> |
| </div> |
| <div class="grid minmax-fixed-percent fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="100">XXXX</div> |
| </div> |
| |
| <div class="grid minmax-percent-flex min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-percent-flex min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid minmax-percent-flex max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-percent-flex max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid minmax-percent-flex fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="200"></div> |
| </div> |
| <div class="grid minmax-percent-flex fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="100" data-expected-width="200">XXXX</div> |
| </div> |
| |
| <div class="grid minmax-intrinsic-percent min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-intrinsic-percent min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="75" data-expected-width="300">XXXX</div> |
| </div> |
| <div class="grid minmax-intrinsic-percent max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-intrinsic-percent max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="75" data-expected-width="300">XXXX</div> |
| </div> |
| <div class="grid minmax-intrinsic-percent fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="50" data-expected-width="100"></div> |
| </div> |
| <div class="grid minmax-intrinsic-percent fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="75" data-expected-width="300">XXXX</div> |
| </div> |
| |
| <div class="grid minmax-percent-intrinsic min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-percent-intrinsic min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid minmax-percent-intrinsic max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid minmax-percent-intrinsic max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0">XXXX</div> |
| </div> |
| <div class="grid minmax-percent-intrinsic fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="50" data-expected-width="200"></div> |
| </div> |
| <div class="grid minmax-percent-intrinsic fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="75" data-expected-width="200">XXXX</div> |
| </div> |
| |
| <div class="grid fit-content min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid fit-content min-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="75" data-expected-width="300">XXXX</div> |
| </div> |
| <div class="grid fit-content max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid fit-content max-content" data-expected-height="0" data-expected-width="0"> |
| <div data-expected-height="75" data-expected-width="300">XXXX</div> |
| </div> |
| <div class="grid fit-content fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="0" data-expected-width="0"></div> |
| </div> |
| <div class="grid fit-content fixed" data-expected-height="100" data-expected-width="100"> |
| <div data-expected-height="75" data-expected-width="300">XXXX</div> |
| </div> |
| |
| </body> |