Status: FAIL | Duration: 31ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-grid/grid-definition/grid-template-rows-fit-content-001.html
<!DOCTYPE html> <html lang=en> <meta charset="utf-8"> <title>CSS Grid Layout Test: grid-template-rows fit-content()</title> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#track-sizing"> <link rel="match" href="grid-template-rows-fit-content-001-ref.html"> <meta name="assert" content="This test checks that 'fit-content()' works as expected in grid-template-rows, i.e., it's similar to 'auto' ('minmax(auto, max-content)') except that the growth limit is clamped at the argument of 'fit-content' (if greater than the 'auto' minimum)."> <meta name="flags" content="ahem"> <link rel="stylesheet" href="/css/support/grid.css"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .grid { justify-content: start; align-content: start; height: 100px; width: 40px; position: relative; padding-left: 10px; margin-right: 5px; grid-row-gap: 5px; float: left; } .fc0 { grid-template-rows: fit-content(0px);} .fc40 { grid-template-rows: fit-content(40px); } .fc80 { grid-template-rows: fit-content(80px); } .fc110 { grid-template-rows: fit-content(110px); } .fc0x2 { grid-template-rows: repeat(2, fit-content(0px));} .fc40x2 { grid-template-rows: repeat(2, fit-content(40px)); } .fc80x2 { grid-template-rows: repeat(2, fit-content(80px)); } .fc110x2 { grid-template-rows: repeat(2, fit-content(110px)); } .fc0p { grid-template-rows: fit-content(0%); } .fc30p { grid-template-rows: fit-content(30%); } .fc90p { grid-template-rows: fit-content(90%); } .fc110p { grid-template-rows: fit-content(110%); } .fc0px2 { grid-template-rows: repeat(2, fit-content(0%)); } .fc30px2 { grid-template-rows: repeat(2, fit-content(30%)); } .fc90px2 { grid-template-rows: repeat(2, fit-content(90%)); } .fc110px2 { grid-template-rows: repeat(2, fit-content(110%)); } div.grid > div { writing-mode: vertical-lr; } .item { font: 10px/1 Ahem; background: cyan; padding-left: 2px; } .spanningItem { font: 10px/1 Ahem; grid-row: 1 / -1; grid-column: 2; background: salmon; padding-left: 2px; } .test { position: absolute; left: 0; bottom: 0; top: 0; width: 5px; background: purple; } .test:nth-child(2n) { background: orange; } .firstRow { grid-row: 1 / 2; } .secondRow { grid-row: 2 / 3; } .thirdRow { grid-row: 3 / 4; } h3 { font-size: 1em; } .container { float: left; height: 110px;} </style> <p>The test passes if it has the same output than the reference.</p> <div class="grid fc0"> <div class="item">XXX</div> <div class="test firstRow"></div> </div> <div class="grid fc0x2"> <div class="item">XXX</div> <div class="spanningItem">XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc40"> <div class="item">XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid fc40x2"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc40x2"> <div class="item">XXX XXX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc80"> <div class="item">XXX XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid fc80x2"> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc80x2"> <div class="item secondRow">XXX XXX XXX</div> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(20px) 50%;"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: minmax(10px, 40px) fit-content(40px);"> <div class="item">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(40px) minmax(10%, 200px);"> <div class="item secondRow">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> </div> <br clear ="all"> <br clear ="all"> <div class="grid" style="grid-template-rows: fit-content(40px) max-content;"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(40px) max-content;"> <div class="item">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(40px) max-content;"> <div class="item secondRow">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: min-content fit-content(40px);"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: min-content fit-content(40px);"> <div class="item">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: min-content fit-content(40px);"> <div class="item secondRow">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(30px) min-content max-content"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content fit-content(30px) max-content"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content max-content fit-content(30px)"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(30px) min-content max-content"> <div class="item" style="grid-row: 1">XXX XX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content fit-content(30px) max-content"> <div class="item" style="grid-row: 1">XXX XX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content max-content fit-content(30px)"> <div class="item" style="grid-row: 2">XXX XX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <br clear="all"> <br clear="all"> <div class="grid fc0p"> <div class="item">XXX</div> <div class="test firstRow"></div> </div> <div class="grid fc0px2"> <div class="item">XXX</div> <div class="spanningItem">XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc30p"> <div class="item">XX XX</div> <div class="test firstRow"></div> </div> <div class="grid fc30px2"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc30px2"> <div class="item secondRow">X X X</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc90p"> <div class="item">XXX XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid fc90px2"> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc90px2"> <div class="item secondRow">XXX XXX XXX</div> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <br clear="all"> <br clear="all"> <div class="grid fc110"> <div class="item">XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid fc110x2"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid fc110x2"> <div class="item">XXX XXX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(110px) fit-content(40px);"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(110px) fit-content(40px);"> <div class="item secondRow">XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: max-content fit-content(110px);"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: fit-content(110px) min-content;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: max-content fit-content(110px) max-content;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content fit-content(110px) min-content;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: auto fit-content(110px) auto;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div>
/css/css-grid/grid-definition/grid-template-rows-fit-content-001-ref.html
<!DOCTYPE html> <html lang=en> <meta charset="utf-8"> <title>CSS Grid Layout Test: grid-template-rows fit-content() reference file</title> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="stylesheet" href="/css/support/grid.css"> <meta name="flags" content="ahem"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .grid { justify-content: start; align-content: start; height: 100px; width: 40px; position: relative; padding-left: 10px; margin-right: 5px; grid-row-gap: 5px; float: left; } .item { font: 10px/1 Ahem; background: cyan; padding-left: 2px; } .spanningItem { font: 10px/1 Ahem; grid-row: 1 / -1; grid-column: 2; background: salmon; padding-left: 2px; } .test { position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: purple; } .test:nth-child(2n) { background: orange; } .firstRow { grid-row: 1 / 2; } .secondRow { grid-row: 2 / 3; } .thirdRow { grid-row: 3 / 4; } div.grid > div { writing-mode: vertical-lr; } </style> <p>The test passes if it has the same output than the reference.</p> <div class="grid" style="grid-template-rows: 30px;"> <div class="item">XXX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 30px 0px;"> <div class="item">XXX</div> <div class="spanningItem">XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 40px;"> <div class="item">XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 32.5px 32.5px;"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 40px 25px;"> <div class="item">XXX XXX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 80px;"> <div class="item">XXX XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 47.5px 47.5px;"> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 25px 70px;"> <div class="item secondRow">XXX XXX XXX</div> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 20px 50px;"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 40px 40px;"> <div class="item">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 15px 80px;"> <div class="item secondRow">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <br clear="all"> <br clear="all"> <div class="grid" style="grid-template-rows: 12.5px 82.5px;"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 50px 45px;"> <div class="item">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 0px 95px;"> <div class="item secondRow">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 12.5px 40px;"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 50px 40px;"> <div class="item">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 0px 50px;"> <div class="item secondRow">XXXXX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: auto min-content max-content"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content auto max-content"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content max-content auto"> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: 30px 0px 60px;"> <div class="item" style="grid-row: 1">XXX XX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: 30px 0px 60px;"> <div class="item" style="grid-row: 1">XXX XX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: 0px 90px 0px;"> <div class="item" style="grid-row: 2">XXX XX</div> <div class="spanningItem">XXX XX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <br clear="all"> <br clear="all"> <div class="grid" style="grid-template-rows: 30px;"> <div class="item">XXX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 30px 0px;"> <div class="item">XXX</div> <div class="spanningItem">XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 30px;"> <div class="item">XX XX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 30px 30px;"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 30px 30px;"> <div class="item secondRow">X X X</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 90px;"> <div class="item">XXX XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 47.5px 47.5px;"> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 15px 80px;"> <div class="item secondRow">XXX XXX XXX</div> <div class="spanningItem">XXX XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <br clear="all"> <br clear="all"> <div class="grid" style="grid-template-rows: 70px;"> <div class="item">XXX XXX</div> <div class="test firstRow"></div> </div> <div class="grid" style="grid-template-rows: 32.5px 32.5px;"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 70px 0px;"> <div class="item">XXX XXX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 32.5px 32.5px;"> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 45px 20px;"> <div class="item secondRow">XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 92.5px 12.5px;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: 82.5px 12.5px;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> </div> <div class="grid" style="grid-template-rows: max-content auto max-content;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: min-content auto min-content;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div> <div class="grid" style="grid-template-rows: auto auto auto;"> <div class="spanningItem" style="grid-column: 1;">XX XX XX XX</div> <div class="spanningItem">XXX XXX</div> <div class="test firstRow"></div> <div class="test secondRow"></div> <div class="test thirdRow"></div> </div>