blob: be00ca019cbe1c4854f2e3b7c52c2f624aa89d77 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script>
if (window.testRunner)
testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
</script>
<link href="resources/grid.css" rel="stylesheet">
<style>
.gridWithoutRepeat {
-webkit-grid-definition-columns: 'a' 50px 'b' 100px 'c' 200px 'd';
-webkit-grid-definition-rows: 'e' 50px 'f' 100px 'g' 200px 'h';
}
.gridWithRepeat {
-webkit-grid-definition-columns: 'b' 50px 'b' 100px 'b' 200px 'b';
-webkit-grid-definition-rows: 'g' 50px 'g' 100px 'g' 200px 'g';
}
.gridItemBToD {
-webkit-grid-column: 'b' / 'd';
-webkit-grid-row: 1;
}
.gridItemGToH {
-webkit-grid-column: 1;
-webkit-grid-row: 'g' / 'h';
}
.gridItemInvalidPositiveGridLine {
-webkit-grid-column: "nonexistent" / span 2;
-webkit-grid-row: span 2 / "nonexistent";
}
.gridItemInvalidNegativeGridLine {
-webkit-grid-column: 1 / -1 "nonexistent";
-webkit-grid-row: span 2 / -10 "nonexistent";
}
.gridItemAToSpanC {
-webkit-grid-column: 'a' / span 'c';
-webkit-grid-row: 1;
}
.gridItemFToSpanH {
-webkit-grid-column: 1;
-webkit-grid-row: 'f' span / 'h';
}
.gridItem2BSpan2B {
-webkit-grid-column: 2 'b' / span 2 'b';
-webkit-grid-row: 1;
}
.gridItemSpan2GNegativeG {
-webkit-grid-column: 1;
-webkit-grid-row: span 2 'g' / -1 'g';
}
</style>
<script src="../../resources/check-layout.js"></script>
</head>
<body onload="checkLayout('.grid')">
<p>This test checks that we resolve named grid line per the specification.</p>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<div class="sizedToGridArea gridItemBToD" data-offset-x="50" data-offset-y="0" data-expected-width="300" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<div class="sizedToGridArea gridItemGToH" data-offset-x="0" data-offset-y="150" data-expected-width="50" data-expected-height="200"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithRepeat">
<div class="sizedToGridArea gridItemBToD" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithRepeat">
<div class="sizedToGridArea gridItemGToH" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<div class="sizedToGridArea gridItemInvalidPositiveGridLine" data-offset-x="0" data-offset-y="0" data-expected-width="150" data-expected-height="50"></div>
</div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<div class="sizedToGridArea gridItemInvalidNegativeGridLine" data-offset-x="0" data-offset-y="50" data-expected-width="350" data-expected-height="300"></div>
</div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<div class="sizedToGridArea gridItemAToSpanC" data-offset-x="0" data-offset-y="0" data-expected-width="150" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<div class="sizedToGridArea gridItemFToSpanH" data-offset-x="0" data-offset-y="50" data-expected-width="50" data-expected-height="300"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<!-- There is only one 'b' so we should pick this one. Also span 2 'b' should resolve to the same 'b'.
Thus being actually 'b' / span 1. -->
<div class="sizedToGridArea gridItem2BSpan2B" data-offset-x="50" data-offset-y="0" data-expected-width="100" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithoutRepeat">
<!-- There is only one 'g' so we should pick this one. Also both initial and final position are equal so
this is resolved as span 1 / 'g'. -->
<div class="sizedToGridArea gridItemSpan2GNegativeG" data-offset-x="0" data-offset-y="50" data-expected-width="50" data-expected-height="100"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithRepeat">
<!-- There is no 'a' or 'c' so it should default to auto / auto. -->
<div class="sizedToGridArea gridItemAToSpanC" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithRepeat">
<!-- There is no 'f' or 'h' so it should default to auto / auto. -->
<div class="sizedToGridArea gridItemFToSpanH" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithRepeat">
<div class="sizedToGridArea gridItem2BSpan2B" data-offset-x="50" data-offset-y="0" data-expected-width="300" data-expected-height="50"></div>
</div>
</div>
<div style="position: relative">
<div class="grid gridWithRepeat">
<div class="sizedToGridArea gridItemSpan2GNegativeG" data-offset-x="0" data-offset-y="50" data-expected-width="50" data-expected-height="300"></div>
</div>
</div>
</body>
</html>