Update web-platform-tests to revision be5419e845d39089ba6dc338c1bd0fa279108317

This commit is contained in:
Josh Matthews 2018-01-04 13:44:24 -05:00
parent aa199307c8
commit 2b6f573eb5
3440 changed files with 109438 additions and 41750 deletions

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items don't avoid auto-fit tracks to collapse.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 200px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px);
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 1 / 5" class="abs" data-expected-width="30" data-expected-height="10"></span>
<span style="grid-column: 1" data-expected-width="30" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks tracks before the first in-flow item also collapse and positioned items don't have any impact.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 200px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px);
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 1 / 5" class="abs" data-expected-width="30" data-expected-height="10"></span>
<span style="grid-column: 2" data-expected-width="30" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items will use the area defined by the in-flow items, ignoring any collapsed track.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 200px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px);
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 1 / 5" class="abs" data-expected-width="60" data-expected-height="10"></span>
<span style="grid-column: 2 / 4" data-expected-width="60" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks and gaps</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 200px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px);
grid-gap: 5px;
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 1 / 5" class="abs" data-expected-width="30" data-expected-height="10"></span>
<span style="grid-column: 1" data-expected-width="30" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks and gaps</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps, both before and after the first in-flow item .">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 200px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px);
grid-gap: 5px;
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 1 / 5" class="abs" data-expected-width="30" data-expected-height="10"></span>
<span style="grid-column: 2" data-expected-width="30" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks and gaps</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps but consider those between in-flow items inside their grid area.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 200px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px);
grid-gap: 5px;
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 2 / 5" class="abs" data-expected-width="65" data-expected-height="10"></span>
<span style="grid-column: 2 / 4" data-expected-width="65" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items in auto-fit tracks and gaps</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps even with non-empty tracks before and after.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.container {
width: 250px;
}
.grid {
position: relative;
grid: 10px / repeat(auto-fit, 30px) 50px;
grid-gap: 5px;
}
span {
background: blue;
}
.abs {
position: absolute;
top:0; right:0; bottom:0; left:0;
background: pink;
}
</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>
<br>
<div class="container">
<div class="grid">
<span style="grid-column: 2 / 5" class="abs" data-expected-width="65" data-expected-height="10"></span>
<span style="grid-column: 2 / 4" data-expected-width="65" data-expected-height="10"></span>
</div>
</div>
</body>

View file

@ -0,0 +1,85 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Self-Alignment along column axis of absolute positioned items with 'definite' grid positions</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos-items">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-self-position-start">
<meta name="assert" content="Absolute positioned grid items don't participate in Baseline Alignment, so the value 'baseline' behaves like 'start'.">
<style>
.grid {
position: relative;
display: inline-grid;
grid-template-columns: 100px 150px;
grid-template-rows: 150px 100px;
font: 10px/1 Ahem;
background: grey;
justify-items: start;
}
.grid.RTL { width: 400px; }
.grid > div { position: absolute; }
.grid > :nth-child(1) { background: green; }
.grid > :nth-child(2) { background: blue; }
.grid > :nth-child(3) { background: yellow; }
.grid > :nth-child(4) { background: red; }
.RTL { direction: rtl; }
.verticalLR { writing-mode: vertical-lr; }
.verticalRL { writing-mode: vertical-rl; }
.firstRowFirstColumn {
grid-row: 1 / 2;
grid-column: 1 / 2;
align-self: baseline;
}
.firstRowSecondColumn {
grid-row: 1 / 2;
grid-column: 2 / 3;
align-self: baseline;
}
.secondRowFirstColumn {
grid-row: 2 / 3;
grid-column: 1 / 2;
align-self: baseline;
}
.secondRowSecondColumn {
grid-row: 2 / 3;
grid-column: 2 / 3;
align-self: baseline;
}
</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 class="grid">
<div data-offset-x="0" data-offset-y="0" data-expected-width="60" data-expected-height="10" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="100" data-offset-y="0" data-expected-width="70" data-expected-height="30" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="0" data-offset-y="150" data-expected-width="60" data-expected-height="10" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="100" data-offset-y="150" data-expected-width="60" data-expected-height="40" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
<div class="grid RTL">
<div data-offset-x="340" data-offset-y="0" data-expected-width="60" data-expected-height="10" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="230" data-offset-y="0" data-expected-width="70" data-expected-height="30" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="340" data-offset-y="150" data-expected-width="60" data-expected-height="10" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="240" data-offset-y="150" data-expected-width="60" data-expected-height="40" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
<br><br>
<div class="grid verticalLR">
<div data-offset-x="0" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="0" data-offset-y="100" data-expected-width="30" data-expected-height="70" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="150" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="150" data-offset-y="100" data-expected-width="40" data-expected-height="60" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
<div class="grid verticalRL">
<div data-offset-x="240" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="220" data-offset-y="100" data-expected-width="30" data-expected-height="70" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="90" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="60" data-offset-y="100" data-expected-width="40" data-expected-height="60" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
</body>

View file

@ -0,0 +1,85 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Self-Alignment along row axis of absolute positioned items with 'definite' grid positions</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos-items">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-self-position-start">
<meta name="assert" content="Absolute positioned grid items don't participate in Baseline Alignment, so the value 'baseline' behaves like 'start'.">
<style>
.grid {
position: relative;
display: inline-grid;
grid-template-columns: 100px 150px;
grid-template-rows: 150px 100px;
font: 10px/1 Ahem;
background: grey;
align-items: start;
}
.grid.RTL { width: 400px; }
.grid > div { position: absolute; }
.grid > :nth-child(1) { background: green; }
.grid > :nth-child(2) { background: blue; }
.grid > :nth-child(3) { background: yellow; }
.grid > :nth-child(4) { background: red; }
.RTL { direction: rtl; }
.verticalLR { writing-mode: vertical-lr; }
.verticalRL { writing-mode: vertical-rl; }
.firstRowFirstColumn {
grid-row: 1 / 2;
grid-column: 1 / 2;
justify-self: baseline;
}
.firstRowSecondColumn {
grid-row: 1 / 2;
grid-column: 2 / 3;
justify-self: baseline;
}
.secondRowFirstColumn {
grid-row: 2 / 3;
grid-column: 1 / 2;
justify-self: baseline;
}
.secondRowSecondColumn {
grid-row: 2 / 3;
grid-column: 2 / 3;
justify-self: baseline;
}
</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 class="grid">
<div data-offset-x="0" data-offset-y="0" data-expected-width="60" data-expected-height="10" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="100" data-offset-y="0" data-expected-width="70" data-expected-height="30" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="0" data-offset-y="150" data-expected-width="60" data-expected-height="10" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="100" data-offset-y="150" data-expected-width="60" data-expected-height="40" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
<div class="grid RTL">
<div data-offset-x="340" data-offset-y="0" data-expected-width="60" data-expected-height="10" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="230" data-offset-y="0" data-expected-width="70" data-expected-height="30" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="340" data-offset-y="150" data-expected-width="60" data-expected-height="10" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="240" data-offset-y="150" data-expected-width="60" data-expected-height="40" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
<br><br>
<div class="grid verticalLR">
<div data-offset-x="0" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="0" data-offset-y="100" data-expected-width="30" data-expected-height="70" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="150" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="150" data-offset-y="100" data-expected-width="40" data-expected-height="60" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
<div class="grid verticalRL">
<div data-offset-x="240" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="firstRowFirstColumn">X XX X</div>
<div data-offset-x="220" data-offset-y="100" data-expected-width="30" data-expected-height="70" class="firstRowSecondColumn">XX X<br>X XXX X<br>XX XXX</div>
<div data-offset-x="90" data-offset-y="0" data-expected-width="10" data-expected-height="60" class="secondRowFirstColumn">X XX X</div>
<div data-offset-x="60" data-offset-y="100" data-expected-width="40" data-expected-height="60" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
</div>
</body>

View file

@ -15,26 +15,6 @@
grid-column-gap: 5px;
}
.fc0 { grid-template-columns: minmax(auto, 0px);}
.fc40 { grid-template-columns: minmax(auto, 40px); }
.fc80 { grid-template-columns: minmax(auto, 80px); }
.fc110 { grid-template-columns: auto; }
.fc0x2 { grid-template-columns: repeat(2, minmax(auto, 0px));}
.fc40x2 { grid-template-columns: repeat(2, minmax(auto, 40px)); }
.fc80x2 { grid-template-columns: repeat(2, minmax(auto, 80px)); }
.fc110x2 { grid-template-columns: auto auto; }
.fc0p { grid-template-columns: minmax(auto, 0%); }
.fc30p { grid-template-columns: minmax(auto, 30%); }
.fc90p { grid-template-columns: minmax(auto, 90%); }
.fc110p { grid-template-columns: auto; }
.fc0px2 { grid-template-columns: repeat(2, minmax(auto, 0%)); }
.fc30px2 { grid-template-columns: repeat(2, minmax(auto, 30%)); }
.fc90px2 { grid-template-columns: repeat(2, minmax(auto, 90%)); }
.fc110px2 { grid-template-columns: auto auto; }
.item {
font: 10px/1 Ahem;
background: cyan;
@ -67,19 +47,19 @@ h3 { font-size: 1em; }
<div class="floatLeft">
<h3>Only fit-content() and with fixed size tracks.</h3>
<div class="grid fc0">
<div class="grid">
<div class="item">XXX</div>
<div class="test autoRowFirstColumn"></div>
</div>
<div class="grid fc0x2">
<div class="grid" style="grid-template-columns: 30px 0px;">
<div class="item">XXX</div>
<div class="spanningItem">XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid fc40">
<div class="grid" style="grid-template-columns: 40px;">
<div class="item">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
</div>
@ -90,45 +70,45 @@ h3 { font-size: 1em; }
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(auto, 40px) auto;">
<div class="grid" style="grid-template-columns: 40px auto;">
<div class="item">XXX XXX</div>
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid fc80">
<div class="grid" style="grid-template-columns: 80px;">
<div class="item">XXX XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
</div>
<div class="grid fc80x2">
<div class="grid" style="grid-template-columns: auto auto;">
<div class="spanningItem">XXX XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: auto minmax(auto, 80px)">
<div class="grid" style="grid-template-columns: 25px 70px;">
<div class="item autoRowSecondColumn">XXX XXX XXX</div>
<div class="spanningItem">XXX XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(auto, 20px) 50%;">
<div class="grid" style="grid-template-columns: 20px 50px;">
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(10px, 40px) minmax(auto, 40px);">
<div class="grid" style="grid-template-columns: 40px 40px;">
<div class="item">XXXXX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: auto minmax(10%, 200px);">
<div class="grid" style="grid-template-columns: 15px 80px;">
<div class="item autoRowSecondColumn">XXXXX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
@ -139,68 +119,68 @@ h3 { font-size: 1em; }
<div class="floatLeft">
<h3>fit-content() with other content-sized tracks.</h3>
<div class="grid" style="grid-template-columns: minmax(auto, 40px) max-content;">
<div class="grid" style="grid-template-columns: 12.5px 82.5px;">
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(auto, 40px) max-content;">
<div class="grid" style="grid-template-columns: 50px 45px;">
<div class="item">XXXXX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(auto, 40px) max-content;">
<div class="grid" style="grid-template-columns: 0px 95px;">
<div class="item autoRowSecondColumn">XXXXX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content minmax(auto, 40px);">
<div class="grid" style="grid-template-columns: 12.5px 40px;">
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content minmax(auto, 40px);">
<div class="grid" style="grid-template-columns: 50px 40px;">
<div class="item">XXXXX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content minmax(auto, 40px);">
<div class="grid" style="grid-template-columns: 0px 50px;">
<div class="item autoRowSecondColumn">XXXXX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(auto, 30px) min-content max-content">
<div class="grid" style="grid-template-columns: auto min-content max-content">
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
<div class="test autoRowThirdColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content minmax(auto, 30px) max-content">
<div class="grid" style="grid-template-columns: min-content auto max-content">
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
<div class="test autoRowThirdColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content max-content minmax(auto, 30px)">
<div class="grid" style="grid-template-columns: min-content max-content auto">
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
<div class="test autoRowThirdColumn"></div>
</div>
<div class="grid" style="grid-template-columns: minmax(auto, 30px) min-content max-content">
<div class="grid" style="grid-template-columns: 30px 0px 60px;">
<div class="item" style="grid-column: 1">XXX XX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
@ -208,7 +188,7 @@ h3 { font-size: 1em; }
<div class="test autoRowThirdColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content minmax(auto, 30px) max-content">
<div class="grid" style="grid-template-columns: 30px 0px 60px;">
<div class="item" style="grid-column: 1">XXX XX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
@ -216,7 +196,7 @@ h3 { font-size: 1em; }
<div class="test autoRowThirdColumn"></div>
</div>
<div class="grid" style="grid-template-columns: min-content max-content minmax(auto, 30px)">
<div class="grid" style="grid-template-columns: 0px 90px 0px;">
<div class="item" style="grid-column: 2">XXX XX</div>
<div class="spanningItem">XXX XX XXX</div>
<div class="test autoRowFirstColumn"></div>
@ -227,48 +207,48 @@ h3 { font-size: 1em; }
<div class="floatLeft">
<h3>fit-content() with percentage arguments.</h3>
<div class="grid fc0p">
<div class="grid" style="grid-template-columns: 30px;">
<div class="item">XXX</div>
<div class="test autoRowFirstColumn"></div>
</div>
<div class="grid fc0px2">
<div class="grid" style="grid-template-columns: 30px 0px;">
<div class="item">XXX</div>
<div class="spanningItem">XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid fc30p">
<div class="grid" style="grid-template-columns: 30px;">
<div class="item">XX XX</div>
<div class="test autoRowFirstColumn"></div>
</div>
<div class="grid fc30px2">
<div class="grid" style="grid-template-columns: 30px 30px;">
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid fc30px2">
<div class="grid" style="grid-template-columns: 30px 30px;">
<div class="item autoRowSecondColumn">X X X</div>
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid fc90p">
<div class="grid" style="grid-template-columns: 90px;">
<div class="item">XXX XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
</div>
<div class="grid fc90px2">
<div class="grid" style="grid-template-columns: 47.5px 47.5px;">
<div class="spanningItem">XXX XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: auto minmax(auto, 90%)">
<div class="grid" style="grid-template-columns: 15px 80px;">
<div class="item autoRowSecondColumn">XXX XXX XXX</div>
<div class="spanningItem">XXX XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
@ -277,47 +257,47 @@ h3 { font-size: 1em; }
</div>
<div class="floatLeft">
<h3>max-content < fit-content() argument.</h3>
<h3>max-content &lt; fit-content() argument.</h3>
<div class="grid fc110">
<div class="grid" style="grid-template-columns: 70px;">
<div class="item">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
</div>
<div class="grid fc110x2">
<div class="grid" style="grid-template-columns: 32.5px 32.5px;">
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid fc110x2">
<div class="grid" style="grid-template-columns: 70px 0px;">
<div class="item">XXX XXX</div>
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: auto auto;">
<div class="grid" style="grid-template-columns: 32.5px 32.5px;">
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: auto auto;">
<div class="grid" style="grid-template-columns: 45px 20px;">
<div class="item autoRowSecondColumn">XX</div>
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: max-content auto;">
<div class="grid" style="grid-template-columns: 92.5px 12.5px;">
<div class="spanningItem" style="grid-row: 1;">XX XX XX XX</div>
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>
<div class="test autoRowSecondColumn"></div>
</div>
<div class="grid" style="grid-template-columns: auto min-content;">
<div class="grid" style="grid-template-columns: 82.5px 12.5px;">
<div class="spanningItem" style="grid-row: 1;">XX XX XX XX</div>
<div class="spanningItem">XXX XXX</div>
<div class="test autoRowFirstColumn"></div>

View file

@ -281,7 +281,7 @@ h3 { font-size: 1em; }
</div>
<div class="floatLeft">
<h3>max-content < fit-content() argument.</h3>
<h3>max-content &lt; fit-content() argument.</h3>
<div class="grid fc110">
<div class="item">XXX XXX</div>

View file

@ -18,26 +18,6 @@
float: left;
}
.fc0 { grid-template-rows: minmax(auto, 0px);}
.fc40 { grid-template-rows: minmax(auto, 40px); }
.fc80 { grid-template-rows: minmax(auto, 80px); }
.fc110 { grid-template-rows: auto; }
.fc0x2 { grid-template-rows: repeat(2, minmax(auto, 0px));}
.fc40x2 { grid-template-rows: repeat(2, minmax(auto, 40px)); }
.fc80x2 { grid-template-rows: repeat(2, minmax(auto, 80px)); }
.fc110x2 { grid-template-rows: auto auto; }
.fc0p { grid-template-rows: minmax(auto, 0%); }
.fc30p { grid-template-rows: minmax(auto, 30px); }
.fc90p { grid-template-rows: minmax(auto, 90px); }
.fc110p { grid-template-rows: auto; }
.fc0px2 { grid-template-rows: repeat(2, minmax(auto, 0%)); }
.fc30px2 { grid-template-rows: repeat(2, minmax(auto, 30px)); }
.fc90px2 { grid-template-rows: repeat(2, minmax(auto, 90px)); }
.fc110px2 { grid-template-rows: auto auto; }
.item {
font: 10px/1 Ahem;
background: cyan;
@ -68,68 +48,68 @@ div.grid > div { writing-mode: vertical-lr; }
<p>The test passes if it has the same output than the reference.</p>
<div class="grid fc0">
<div class="grid" style="grid-template-rows: 30px;">
<div class="item">XXX</div>
<div class="test firstRow"></div>
</div>
<div class="grid fc0x2">
<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 fc40">
<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: auto auto;">
<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: minmax(auto, 40px) auto;">
<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 fc80">
<div class="grid" style="grid-template-rows: 80px;">
<div class="item">XXX XXX XXX</div>
<div class="test firstRow"></div>
</div>
<div class="grid fc80x2">
<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: auto minmax(auto, 80px)">
<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: minmax(auto, 20px) 50%;">
<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: minmax(10px, 40px) minmax(auto, 40px);">
<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: auto minmax(10%, 200px);">
<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>
@ -139,68 +119,68 @@ div.grid > div { writing-mode: vertical-lr; }
<br clear="all">
<br clear="all">
<div class="grid" style="grid-template-rows: minmax(auto, 40px) max-content;">
<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: minmax(auto, 40px) max-content;">
<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: minmax(auto, 40px) max-content;">
<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: min-content minmax(auto, 40px);">
<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: min-content minmax(auto, 40px);">
<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: min-content minmax(auto, 40px);">
<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: minmax(auto, 30px) min-content max-content">
<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 minmax(auto, 30px) max-content">
<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 minmax(auto, 30px)">
<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: minmax(auto, 30px) min-content max-content">
<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>
@ -208,7 +188,7 @@ div.grid > div { writing-mode: vertical-lr; }
<div class="test thirdRow"></div>
</div>
<div class="grid" style="grid-template-rows: min-content minmax(auto, 30px) max-content">
<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>
@ -216,7 +196,7 @@ div.grid > div { writing-mode: vertical-lr; }
<div class="test thirdRow"></div>
</div>
<div class="grid" style="grid-template-rows: min-content max-content minmax(auto, 30px)">
<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>
@ -227,48 +207,48 @@ div.grid > div { writing-mode: vertical-lr; }
<br clear="all">
<br clear="all">
<div class="grid fc0p">
<div class="grid" style="grid-template-rows: 30px;">
<div class="item">XXX</div>
<div class="test firstRow"></div>
</div>
<div class="grid fc0px2">
<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 fc30p">
<div class="grid" style="grid-template-rows: 30px;">
<div class="item">XX XX</div>
<div class="test firstRow"></div>
</div>
<div class="grid fc30px2">
<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 fc30px2">
<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 fc90p">
<div class="grid" style="grid-template-rows: 90px;">
<div class="item">XXX XXX XXX</div>
<div class="test firstRow"></div>
</div>
<div class="grid fc90px2">
<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: auto minmax(auto, 90px)">
<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>
@ -278,45 +258,45 @@ div.grid > div { writing-mode: vertical-lr; }
<br clear="all">
<br clear="all">
<div class="grid fc110">
<div class="grid" style="grid-template-rows: 70px;">
<div class="item">XXX XXX</div>
<div class="test firstRow"></div>
</div>
<div class="grid fc110x2">
<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 fc110x2">
<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: auto auto;">
<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: auto auto;">
<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: max-content auto;">
<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: auto min-content;">
<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>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<title>CSS Grid Layout Test: Explicitly sized grid item as table with narrow contents</title>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-grid-1/#grid-track-concept" title="3.2. Grid Tracks and Cells">
<meta name="assert" content="A grid item as a table uses the sizing algorithm of the grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<p>Test passes if there is a filled green square.</p>
<div style="display:grid; grid-template-columns:50% 50%; width:200px;">
<div style="display:table; background:green;">
<div style="width:10px; height:100px;"></div>
</div>
</div>

View file

@ -4,11 +4,11 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.5. Implied Minimum Size of Grid Items">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="Checks that automatic minimum size is not clamped if the track has an 'auto' min track sizing function.">
<meta name="assert" content="Checks that automatic minimum size is clamped even if the track has an 'auto' min track sizing function as the max track sizing function is fixed.">
<style>
#reference-overlapped-red {
#reference-overlapped-green {
position: absolute;
background-color: red;
background-color: green;
width: 100px;
height: 100px;
z-index: -1;
@ -21,8 +21,8 @@
grid: minmax(auto, 0px) / minmax(auto, 0px);
}
#test-grid-item-overlapping-green {
background-color: green;
#test-grid-item-overlapping-red {
background-color: red;
}
#content-100x100 {
@ -33,9 +33,9 @@
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="reference-overlapped-red"></div>
<div id="reference-overlapped-green"></div>
<div id="constrained-grid">
<div id="test-grid-item-overlapping-green">
<div id="test-grid-item-overlapping-red">
<div id="content-100x100"></div>
</div>
</div>

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.5. Implied Minimum Size of Grid Items">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="Checks that automatic minimum size is not clamped if the track has an 'auto' min track sizing function.">
<meta name="assert" content="Checks that automatic minimum size is clamped even if the track has an 'auto' min track sizing function as the max track sizing function is fixed.">
<style>
#reference-overlapped-red {
position: absolute;

View file

@ -0,0 +1,137 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Minimum size of grid items</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.5. Implied Minimum Size of Grid Items">
<meta name="assert" content="Checks that automatic minimum size is clamped with different column sizes.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.grid {
border: solid thick;
font: 10px/1 Ahem;
width: 50px;
height: 50px;
grid-template-rows: 25px 25px;
}
.grid > div:nth-child(1) {
color: blue;
background: cyan;
}
.grid > div:nth-child(2) {
background: magenta;
}
</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>
<pre>grid-template-columns: auto;</pre>
<div class="grid" style="grid-template-columns: auto;">
<div data-expected-width="100">XXXXXXXXXX</div>
<div data-expected-width="100"></div>
</div>
<pre>grid-template-columns: 0px;</pre>
<div class="grid" style="grid-template-columns: 0px;">
<div data-expected-width="0">XXXXXXXXXX</div>
<div data-expected-width="0"></div>
</div>
<pre>grid-template-columns: 25px;</pre>
<div class="grid" style="grid-template-columns: 25px;">
<div data-expected-width="25">XXXXXXXXXX</div>
<div data-expected-width="25"></div>
</div>
<pre>grid-template-columns: minmax(auto, 0px);</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 0px);">
<div data-expected-width="0">XXXXXXXXXX</div>
<div data-expected-width="0"></div>
</div>
<pre>grid-template-columns: minmax(auto, 25px);</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 25px);">
<div data-expected-width="25">XXXXXXXXXX</div>
<div data-expected-width="25"></div>
</div>
<pre>grid-template-columns: minmax(auto, 0px); item width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 0px);">
<div data-expected-width="10" style="width: 10px;">XXXXXXXXXX</div>
<div data-expected-width="10"></div>
</div>
<pre>grid-template-columns: minmax(auto, 25px); item width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 25px);">
<div data-expected-width="10" style="width: 10px;">XXXXXXXXXX</div>
<div data-expected-width="25"></div>
</div>
<pre>grid-template-columns: minmax(auto, 0px); item margin width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 0px);">
<div data-expected-width="0" style="margin: 0px 5px;"></div>
<div data-expected-width="10"></div>
</div>
<pre>grid-template-columns: minmax(auto, 25px); item margin width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 25px);">
<div data-expected-width="15" style="margin: 0px 5px;"></div>
<div data-expected-width="25"></div>
</div>
<pre>grid-template-columns: minmax(auto, 0px); item padding width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 0px);">
<div data-expected-width="10" style="padding: 0px 5px;"></div>
<div data-expected-width="10"></div>
</div>
<pre>grid-template-columns: minmax(auto, 25px); item padding width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 25px);">
<div data-expected-width="25" style="padding: 0px 5px;"></div>
<div data-expected-width="25"></div>
</div>
<pre>grid-template-columns: minmax(auto, 0px); item border width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 0px);">
<div data-expected-width="10" style="border: solid 5px blue;"></div>
<div data-expected-width="10"></div>
</div>
<pre>grid-template-columns: minmax(auto, 25px); item border width: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 25px);">
<div data-expected-width="25" style="border: solid 5px blue;"></div>
<div data-expected-width="25"></div>
</div>
<pre>grid-template-columns: minmax(auto, 0px); item width + margin + border + padding: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 0px);">
<div data-expected-width="8" style="width: 4px; margin: 1px; padding: 1px; border: solid 1px blue;"></div>
<div data-expected-width="10"></div>
</div>
<pre>grid-template-columns: minmax(auto, 25px); item width + margin + border + padding: 10px;</pre>
<div class="grid" style="grid-template-columns: minmax(auto, 25px);">
<div data-expected-width="8" style="width: 4px; margin: 1px; padding: 1px; border: solid 1px blue;"></div>
<div data-expected-width="25"></div>
</div>

View file

@ -0,0 +1,248 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Minimum size of grid items</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.5. Implied Minimum Size of Grid Items">
<meta name="assert" content="Checks that automatic minimum size is clamped with different row sizes.">
<link rel="stylesheet" href="../support/grid.css">
<style>
.grid {
border: solid thick;
font: 10px/1 Ahem;
width: 50px;
height: 50px;
grid-template-columns: 25px 25px;
margin: 50px 0px;
}
.grid > div:nth-child(1) {
color: blue;
background: cyan;
}
.grid > div:nth-child(2) {
background: magenta;
}
</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>
<h3>writing-mode: vertical-lr;</h3>
<pre>grid-template-rows: auto;</pre>
<div class="grid" style="grid-template-rows: auto;">
<div class="verticalLR" data-expected-height="100">XXXXXXXXXX</div>
<div data-expected-height="100"></div>
</div>
<pre>grid-template-rows: 0px;</pre>
<div class="grid" style="grid-template-rows: 0px;">
<div class="verticalLR" data-expected-height="0">XXXXXXXXXX</div>
<div data-expected-height="0"></div>
</div>
<pre>grid-template-rows: 25px;</pre>
<div class="grid" style="grid-template-rows: 25px;">
<div class="verticalLR" data-expected-height="25">XXXXXXXXXX</div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalLR" data-expected-height="0">XXXXXXXXXX</div>
<div data-expected-height="0"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalLR" data-expected-height="25">XXXXXXXXXX</div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalLR" data-expected-height="10" style="height: 10px;">XXXXXXXXXX</div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalLR" data-expected-height="10" style="height: 10px;">XXXXXXXXXX</div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item margin height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalLR" data-expected-height="0" style="margin: 5px 0px;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item margin height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalLR" data-expected-height="15" style="margin: 5px 0px;"></div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item padding height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalLR" data-expected-height="10" style="padding: 5px 0px;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item padding height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalLR" data-expected-height="25" style="padding: 5px 0px;"></div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item border height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalLR" data-expected-height="10" style="border: solid 5px blue;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item border height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalLR" data-expected-height="25" style="border: solid 5px blue;"></div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item height + margin + border + padding: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalLR" data-expected-height="8" style="height: 4px; margin: 1px; padding: 1px; border: solid 1px blue;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item height + margin + border + padding: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalLR" data-expected-height="8" style="height: 4px; margin: 1px; padding: 1px; border: solid 1px blue;"></div>
<div data-expected-height="25"></div>
</div>
<h3>writing-mode: vertical-rl;</h3>
<pre>grid-template-rows: auto;</pre>
<div class="grid" style="grid-template-rows: auto;">
<div class="verticalRL" data-expected-height="100">XXXXXXXXXX</div>
<div data-expected-height="100"></div>
</div>
<pre>grid-template-rows: 0px;</pre>
<div class="grid" style="grid-template-rows: 0px;">
<div class="verticalRL" data-expected-height="0">XXXXXXXXXX</div>
<div data-expected-height="0"></div>
</div>
<pre>grid-template-rows: 25px;</pre>
<div class="grid" style="grid-template-rows: 25px;">
<div class="verticalRL" data-expected-height="25">XXXXXXXXXX</div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalRL" data-expected-height="0">XXXXXXXXXX</div>
<div data-expected-height="0"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalRL" data-expected-height="25">XXXXXXXXXX</div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalRL" data-expected-height="10" style="height: 10px;">XXXXXXXXXX</div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalRL" data-expected-height="10" style="height: 10px;">XXXXXXXXXX</div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item margin height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalRL" data-expected-height="0" style="margin: 5px 0px;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item margin height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalRL" data-expected-height="15" style="margin: 5px 0px;"></div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item padding height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalRL" data-expected-height="10" style="padding: 5px 0px;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item padding height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalRL" data-expected-height="25" style="padding: 5px 0px;"></div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item border height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalRL" data-expected-height="10" style="border: solid 5px blue;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item border height: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalRL" data-expected-height="25" style="border: solid 5px blue;"></div>
<div data-expected-height="25"></div>
</div>
<pre>grid-template-rows: minmax(auto, 0px); item height + margin + border + padding: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 0px);">
<div class="verticalRL" data-expected-height="8" style="height: 4px; margin: 1px; padding: 1px; border: solid 1px blue;"></div>
<div data-expected-height="10"></div>
</div>
<pre>grid-template-rows: minmax(auto, 25px); item height + margin + border + padding: 10px;</pre>
<div class="grid" style="grid-template-rows: minmax(auto, 25px);">
<div class="verticalRL" data-expected-height="8" style="height: 4px; margin: 1px; padding: 1px; border: solid 1px blue;"></div>
<div data-expected-height="25"></div>
</div>

View file

@ -54,7 +54,7 @@
Object.keys(data).forEach(function(prop){
test(function(){
assert_own_property(myDiv.style, prop)
assert_true(prop in myDiv.style)
}, prop)
if ('initial' in data[prop]) test(function(){
@ -66,7 +66,7 @@
var syntaxTests = data[prop]
Object.keys(syntaxTests).forEach(function(testcase){
test(function(){
assert_own_property(myDiv.style, prop)
assert_true(prop in myDiv.style)
myDiv.style[prop] = syntaxTests[testcase][0]
assert_equals(myDiv.style[prop], syntaxTests[testcase][0], testcase)
assert_equals(getComputedStyle(myDiv)[prop], syntaxTests[testcase][1], testcase)

View file

@ -0,0 +1,108 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: '::first-letter' is ignored in grid containers</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers">
<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter">
<meta name="assert" content="The test checks that grid item should ignore grid container's first-letter pseudo-element.">
<link href="../support/grid.css" rel="stylesheet">
<style>
body { line-height: 20px; }
.grid-first-letter::first-letter { line-height: 100px; color: red; }
.container-first-letter::first-letter { line-height: 200px; color: green; }
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<body onload="checkLayout('.container');">
<div id="log"></div>
<div class="container">
<div class="grid grid-first-letter">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
</div>
<div class="container">
<div class="inline-grid grid-first-letter">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
</div>
<div class="container">
<div class="grid grid-first-letter" data-expected-height=20>
Anonymous item.
</div>
</div>
<div class="container">
<div class="inline-grid grid-first-letter" data-expected-height=20>
Anonymous item.
</div>
</div>
<div class="container container-first-letter">
<div class="grid grid-first-letter">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
<div data-expected-height=200>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="inline-grid grid-first-letter">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
<div data-expected-height=20>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="grid grid-first-letter" data-expected-height=20>
Anonymous item.
</div>
<div data-expected-height=200>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="inline-grid grid-first-letter" data-expected-height=20>
Anonymous item.
</div>
<div data-expected-height=20>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="grid">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
<div data-expected-height=200>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="inline-grid">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
<div data-expected-height=20>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="grid" data-expected-height=20>
Anonymous item.
</div>
<div data-expected-height=200>Out of grid.</div>
</div>
<div class="container container-first-letter">
<div class="inline-grid" data-expected-height=20>
Anonymous item.
</div>
<div data-expected-height=20>Out of grid.</div>
</div>
</body>

View file

@ -0,0 +1,92 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: '::first-line' is ignored in grid containers</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers">
<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line">
<meta name="assert" content="The test checks that grid item should ignore grid container's first-line pseudo-element.">
<link href="../support/grid.css" rel="stylesheet">
<style>
body { line-height: 20px; }
.grid-first-line::first-line { line-height: 100px; }
.container::first-line { line-height: 200px; }
</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,.inline-grid');">
<div id="log"></div>
<div class="grid grid-first-line">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
<div class="inline-grid grid-first-line">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
<div class="grid grid-first-line" data-expected-height=20>
Anonymous item.
</div>
<div class="inline-grid grid-first-line" data-expected-height=20>
Anonymous item.
</div>
<div class="container">
<div class="grid grid-first-line">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
</div>
<div class="container">
<div class="inline-grid grid-first-line">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
</div>
<div class="container">
<div class="grid grid-first-line" data-expected-height=20>
Anonymous item.
</div>
</div>
<div class="container">
<div class="inline-grid grid-first-line" data-expected-height=20>
Anonymous item.
</div>
</div>
<div class="container">
<div class="grid">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
</div>
<div class="container">
<div class="inline-grid">
<div class="item" data-expected-height=20>The first item.</div>
<div class="item" data-expected-height=20>The second item.</div>
</div>
</div>
<div class="container">
<div class="grid" data-expected-height=20>
Anonymous item.
</div>
</div>
<div class="container">
<div class="inline-grid" data-expected-height=20>
Anonymous item.
</div>
</div>
</body>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: '::first-letter' is valid in grid items</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers">
<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter">
<meta name="assert" content="The test checks that grid items accept first-letter pseudo-element.">
<link href="../support/grid.css" rel="stylesheet">
<style>
.item::first-letter { line-height: 100px; }
</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,.inline-grid');">
<div id="log"></div>
<div class="grid">
<div class="item" data-expected-height=100>The first item.</div>
<div class="item" data-expected-height=100>The second item.</div>
</div>
<div class="inline-grid">
<div class="item" data-expected-height=100>The first item.</div>
<div class="item" data-expected-height=100>The second item.</div>
</div>
</body>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: '::first-line' is valid in grid items</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers">
<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line">
<meta name="assert" content="The test checks that grid items accept first-line pseudo-element.">
<link href="../support/grid.css" rel="stylesheet">
<style>
.item::first-line { line-height: 100px; }
</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,.inline-grid');">
<div id="log"></div>
<div class="grid">
<div class="item" data-expected-height=100>The first item.</div>
<div class="item" data-expected-height=100>The second item.</div>
</div>
<div class="inline-grid">
<div class="item" data-expected-height=100>The first item.</div>
<div class="item" data-expected-height=100>The second item.</div>
</div>
</body>

View file

@ -38,6 +38,7 @@
}
</style>
<p>The test passes if it has the same visual effect as reference. Column gap should be percentage of width. Row gap should resolve to auto, and therefore collapse to 0 height.</p>
<div id="grid">
<div></div>
<div></div>

View file

@ -38,6 +38,7 @@
}
</style>
<p>The test passes if it has the same visual effect as reference.</p>
<div id="grid">
<div></div>
<div></div>

View file

@ -38,6 +38,7 @@
}
</style>
<p>The test passes if it has the same visual effect as reference.</p>
<div id="grid">
<div></div>
<div></div>