mirror of
https://github.com/servo/servo.git
synced 2025-06-26 10:04:33 +01:00
225 lines
15 KiB
HTML
225 lines
15 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<title>CSS Grid Layout test: align-self property</title>
|
|
<link rel="author" title="Rossana Monteriso" href="mailto:rmonteriso@igalia.com">
|
|
<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/#alignment-values">
|
|
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#propdef-direction">
|
|
<meta name="assert" content="This test checks that the align-self property is applied correctly for RL and LR, vertical and horizontal writing modes.">
|
|
<meta name="flags" content="ahem">
|
|
<link rel="stylesheet" href="/css/support/grid.css">
|
|
<link rel="stylesheet" href="/css/support/alignment.css">
|
|
<link rel="stylesheet" href="/css/support/width-keyword-classes.css">
|
|
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
|
|
|
<style>
|
|
|
|
.grid {
|
|
grid-template-columns: 100px 100px;
|
|
grid-template-rows: 200px 200px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.cell {
|
|
width: 20px;
|
|
height: 40px;
|
|
}
|
|
|
|
.item {
|
|
width: 8px;
|
|
height: 16px;
|
|
background: black;
|
|
}
|
|
</style>
|
|
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/check-layout-th.js"></script>
|
|
<script type="text/javascript">
|
|
setup({ explicit_done: true });
|
|
</script>
|
|
|
|
<body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })">
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content" data-expected-width="200" data-expected-height="400">
|
|
<div class="alignSelfStretch firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="100" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="0" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content" data-expected-width="200" data-expected-height="400">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="0" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Default alignment and initial values. -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content alignItemsCenter" data-expected-width="200" data-expected-height="400">
|
|
<div class="cell alignSelfAuto firstRowFirstColumn" data-offset-x="0" data-offset-y="80" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell firstRowSecondColumn" data-offset-x="100" data-offset-y="80" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content" data-expected-width="200" data-expected-height="400">
|
|
<div class="alignSelfAuto firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
|
|
<div class="cell firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RTL direction (it should not affect the block-flow direction). -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content directionRTL" data-expected-width="200" data-expected-height="400">
|
|
<div class="alignSelfStretch firstRowFirstColumn" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="80" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="80" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="180" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content directionRTL" data-expected-width="200" data-expected-height="400">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="180" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="80" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="180" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="80" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RTL direction (it should not affect the block-flow) with opposite directions grid container vs grid item. -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content" data-expected-width="200" data-expected-height="400">
|
|
<div class="alignSelfStretch firstRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content" data-expected-width="200" data-expected-height="400">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vertical RL writing mode. -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
|
|
<div class="alignSelfStretch firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="200" data-expected-height="100"></div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="90" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vertical LR writing mode. -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
|
|
<div class="alignSelfStretch firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="100"></div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="290" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vertical RL writing mode with opposite block-flow directions grid container vs grid item. -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
|
|
<div class="alignSelfStretch firstRowFirstColumn verticalLR" data-offset-x="200" data-offset-y="0" data-expected-width="200" data-expected-height="100">
|
|
</div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn verticalLR" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn verticalLR" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn verticalLR" data-offset-x="90" data-offset-y="0" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn verticalLR" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn verticalLR" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn verticalLR" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn verticalLR" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vertical LR writing mode with opposite block-flow directions grid container vs grid item. -->
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
|
|
<div class="alignSelfStretch firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="100">
|
|
</div>
|
|
<div class="cell alignSelfStart firstRowSecondColumn verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfEnd firstRowSecondColumn verticalRL" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfCenter secondRowFirstColumn verticalRL" data-offset-x="290" data-offset-y="0" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="position: relative">
|
|
<div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
|
|
<div class="cell alignSelfFlexEnd firstRowFirstColumn verticalRL" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfFlexStart firstRowSecondColumn verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfSelfStart secondRowFirstColumn verticalRL" data-offset-x="380" data-offset-y="0" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
<div class="cell alignSelfSelfEnd secondRowSecondColumn verticalRL" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40">
|
|
<div class="item"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|