Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /css/css-grid/abspos/grid-positioned-items-content-alignment-001.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned items content alignment</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@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/#grid-align" title="10.5. Aligning the Grid: the justify-content and align-content properties">
<meta name="assert" content="This test checks the behavior of the positioned items in a grid using content alignment.">
<link rel="stylesheet" href="/css/support/grid.css">
<link rel="stylesheet" href="../../support/alignment.css">
<style>
.grid {
grid-template-columns: 100px 50px;
grid-template-rows: 70px 30px;
width: 400px;
height: 200px;
margin: 5px;
/* Ensures that the grid container is the containing block of the absolutely positioned grid children. */
position: relative;
}
.grid > div {
position: absolute;
width: 100%;
height: 100%;
background-color: lime;
}
.offsets {
left: 0;
top: 0;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<body onload="checkLayout('.grid')">
<div id="log"></div>
<div class="grid contentStart">
<div style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentStart">
<div class="offsets" style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentCenter">
<div style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="125" data-offset-y="50" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentCenter">
<div class="offsets" style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="125" data-offset-y="50" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentEnd">
<div style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="250" data-offset-y="100" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentEnd">
<div class="offsets" style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="250" data-offset-y="100" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceBetween">
<div style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceBetween">
<div class="offsets" style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceAround">
<div style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="63" data-offset-y="25" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceAround">
<div class="offsets" style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="63" data-offset-y="25" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="83" data-offset-y="33" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div class="offsets" style="grid-column: 1 / 2; grid-row: 1 / 2;"
data-offset-x="83" data-offset-y="33" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentStart">
<div style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="100" data-offset-y="70" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentStart">
<div class="offsets" style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="100" data-offset-y="70" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentCenter">
<div style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="225" data-offset-y="120" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentCenter">
<div class="offsets" style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="225" data-offset-y="120" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentEnd">
<div style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentEnd">
<div class="offsets" style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceBetween">
<div style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceBetween">
<div class="offsets" style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceAround">
<div style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="288" data-offset-y="145" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceAround">
<div class="offsets" style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="288" data-offset-y="145" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="267" data-offset-y="137" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div class="offsets" style="grid-column: 2 / 3; grid-row: 2 / 3;"
data-offset-x="267" data-offset-y="137" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentStart">
<div style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentStart">
<div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentCenter">
<div style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="225" data-expected-height="120">
</div>
</div>
<div class="grid contentCenter">
<div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="225" data-expected-height="120">
</div>
</div>
<div class="grid contentEnd">
<div style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="350" data-expected-height="170">
</div>
</div>
<div class="grid contentEnd">
<div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="350" data-expected-height="170">
</div>
</div>
<div class="grid contentSpaceBetween">
<div style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceBetween">
<div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="70">
</div>
</div>
<div class="grid contentSpaceAround">
<div style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="163" data-expected-height="95">
</div>
</div>
<div class="grid contentSpaceAround">
<div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="163" data-expected-height="95">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="183" data-expected-height="103">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
data-offset-x="0" data-offset-y="0" data-expected-width="183" data-expected-height="103">
</div>
</div>
<div class="grid contentStart">
<div style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="100" data-offset-y="70" data-expected-width="300" data-expected-height="130">
</div>
</div>
<div class="grid contentStart">
<div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="100" data-offset-y="70" data-expected-width="300" data-expected-height="130">
</div>
</div>
<div class="grid contentCenter">
<div style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="225" data-offset-y="120" data-expected-width="175" data-expected-height="80">
</div>
</div>
<div class="grid contentCenter">
<div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="225" data-offset-y="120" data-expected-width="175" data-expected-height="80">
</div>
</div>
<div class="grid contentEnd">
<div style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentEnd">
<div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceBetween">
<div style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceBetween">
<div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="350" data-offset-y="170" data-expected-width="50" data-expected-height="30">
</div>
</div>
<div class="grid contentSpaceAround">
<div style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="288" data-offset-y="145" data-expected-width="112.5" data-expected-height="55">
</div>
</div>
<div class="grid contentSpaceAround">
<div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="288" data-offset-y="145" data-expected-width="112.5" data-expected-height="55">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="267" data-offset-y="137" data-expected-width="133" data-expected-height="63">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
data-offset-x="267" data-offset-y="137" data-expected-width="133" data-expected-height="63">
</div>
</div>
<div class="grid contentStart">
<div style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentStart">
<div class="offsets" style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentCenter">
<div style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentCenter">
<div class="offsets" style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentEnd">
<div style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentEnd">
<div class="offsets" style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentSpaceBetween">
<div style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentSpaceBetween">
<div class="offsets" style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentSpaceAround">
<div style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentSpaceAround">
<div class="offsets" style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
<div class="grid contentSpaceEvenly">
<div class="offsets" style="grid-column: auto / auto; grid-row: auto / auto;"
data-offset-x="0" data-offset-y="0" data-expected-width="400" data-expected-height="200">
</div>
</div>
</body>