Tests: Import a bunch of WPT tests from /css/css-flexbox

This commit is contained in:
Andreas Kling 2024-10-28 21:03:26 +01:00 committed by Andreas Kling
commit abd24d001d
Notes: github-actions[bot] 2024-10-30 09:18:21 +00:00
688 changed files with 27834 additions and 0 deletions

View file

@ -0,0 +1,8 @@
spec: https://drafts.csswg.org/css-flexbox/
suggested_reviewers:
- kojiishi
- plinss
- cbiesinger
- fantasai
- rachelandrew
- tabatkins

View file

@ -0,0 +1,7 @@
features:
- name: flexbox
files: "**"
# TODO: map *gap* to flexbox-gap. This is currently not possible without the
# tests being associated with both flexbox and flexbox-gap. All but one of the
# *gap* tests are passing in all browsers, so lumping them in with flexbox is
# relatively harmless.

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Flexbox: removing abspos descendents</title>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=167566">
<meta name="assert" content="This test ensures that flex item's padding doesn't disappear when an abspos descendent is removed.">
<link href="../support/flexbox.css" rel="stylesheet">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<script>
window.onload = function() {
document.body.offsetHeight;
document.getElementById('to-hide').style.display = "none";
checkLayout(".flexbox");
};
</script>
</head>
<body>
<div id=log></div>
<div class="flexbox" style="height: 100px;" data-expected-height="100">
<div style="width: 100%; overflow: auto; padding-bottom: 100px; background-color: red;" data-expected-height="100">
<div style="position: relative; height: 100px; background-color: green;" data-expected-height="100">
<div id="to-hide" style="position: absolute;" data-expected-height="0"></div>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,106 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row flex container, with various "align-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7596#issuecomment-1225952646">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row wrap;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
/* This "align-self" is actually the only alignment that matters here.
The flex containers' various "align-content" values have no impact on
the positioning of absolutely-positioned flex children. */
align-self: center;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="align-content: normal"><div data-offset-x="2" data-offset-y="3"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container" style="align-content: baseline"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: last baseline"><div data-offset-x="2" data-offset-y="3"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="align-content: space-between"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: space-around"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: space-evenly"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: stretch"><div data-offset-x="2" data-offset-y="3"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="align-content: center"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: start"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: end"><div data-offset-x="2" data-offset-y="3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="align-content: flex-start"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="align-content: flex-end"><div data-offset-x="2" data-offset-y="3"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="align-content: normal"><div data-offset-x="2" data-offset-y="-1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container" style="align-content: baseline"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: last baseline"><div data-offset-x="2" data-offset-y="-1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="align-content: space-between"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: space-around"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: space-evenly"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: stretch"><div data-offset-x="2" data-offset-y="-1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="align-content: center"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: start"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: end"><div data-offset-x="2" data-offset-y="-1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="align-content: flex-start"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="align-content: flex-end"><div data-offset-x="2" data-offset-y="-1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="2" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="2" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row wrap-reverse flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="2" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="2" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row-reverse flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row-reverse wrap-reverse flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row-reverse wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column wrap-reverse flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y=""></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column-reverse flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="6" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column-reverse wrap-reverse flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column-reverse wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
align-items: center; /* To exercise 'align-self: auto' on children */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="6" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a RTL row flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
direction: rtl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,99 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos LTR children in a RTL row flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
direction: rtl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
direction: ltr;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a RTL column flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
direction: rtl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,99 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos LTR children in a RTL column flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
direction: rtl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
direction: ltr;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,102 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a vertical-rl row flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
writing-mode: vertical-rl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: left" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: right" data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: left" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: right" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,103 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos horizontal-tb children in a vertical-rl row flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
writing-mode: vertical-rl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
writing-mode: horizontal-tb;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="6" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: left" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: right" data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="0" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: left" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: right" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a vertical-rl column flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
writing-mode: vertical-rl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,100 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos vertical-lr + RTL children in a vertical-rl column flex container, with various "align-self" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
writing-mode: vertical-rl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
writing-mode: vertical-lr;
direction: rtl;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="10" data-offset-y="3"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="10" data-offset-y="5"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="10" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various align-self values, from
https://www.w3.org/TR/css-align-3/#propdef-align-self -->
<!-- auto | normal | stretch -->
<div class="container"><div style="align-self: auto" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: normal" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: stretch" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <baseline-position> -->
<div class="container"><div style="align-self: baseline" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: last baseline" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <self-position>, part 1 -->
<div class="container"><div style="align-self: center" data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container"><div style="align-self: start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: end" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-start" data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container"><div style="align-self: self-end" data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <self-position>, part 2 -->
<div class="container"><div style="align-self: flex-start" data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container"><div style="align-self: flex-end" data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row wrap-reverse flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="6" data-offset-y="5"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="6" data-offset-y="5"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="6" data-offset-y="5"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row-reverse flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row-reverse wrap;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a row-reverse wrap-reverse flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row-reverse wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="6" data-offset-y="5"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="6" data-offset-y="5"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="6" data-offset-y="5"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="0" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column wrap-reverse flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column-reverse flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column-reverse wrap;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="2" data-offset-y="3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="5"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,97 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a column-reverse wrap-reverse flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column-reverse wrap-reverse;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a RTL row flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
direction: rtl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a RTL column flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
direction: rtl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a vertical-rl row flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: row;
writing-mode: vertical-rl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="10" data-offset-y="3"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="10" data-offset-y="5"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="5"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="-2" data-offset-y="-1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="-3"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<head>
<title>CSS Test: Static position of abspos children in a vertical-rl column flex container, with various "justify-content" values</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta charset="utf-8">
<style>
.container {
display: flex;
position: relative;
flex-flow: column;
writing-mode: vertical-rl;
padding: 1px 2px;
border: 1px solid black;
background: yellow;
margin-bottom: 5px;
margin-right: 5px;
float: left; /* For testing in "rows" of containers */
}
br { clear: both }
.big > .container {
height: 10px;
width: 16px;
}
.small > .container {
height: 2px;
width: 4px;
}
.container > * {
position: absolute;
background: teal;
height: 6px;
width: 8px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.container > div')">
<div class="big">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="6" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="10" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="10" data-offset-y="1"></div></div>
<br>
</div>
<div class="small">
<!-- The various justify-content values, from
https://www.w3.org/TR/css-align-3/#propdef-align-content -->
<!-- normal -->
<div class="container" style="justify-content: normal"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-distribution> -->
<div class="container" style="justify-content: space-between"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-around"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: space-evenly"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: stretch"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 1 -->
<div class="container" style="justify-content: center"><div data-offset-x="0" data-offset-y="1"></div></div>
<div class="container" style="justify-content: start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: end"><div data-offset-x="2" data-offset-y="1"></div></div>
<br>
<!-- <content-position>, part 2 -->
<div class="container" style="justify-content: flex-start"><div data-offset-x="-2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: flex-end"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: left"><div data-offset-x="2" data-offset-y="1"></div></div>
<div class="container" style="justify-content: right"><div data-offset-x="-2" data-offset-y="1"></div></div>
<br>
</div>
</body>
</html>

View file

@ -0,0 +1,709 @@
<!DOCTYPE html>
<html>
<title>CSS Test: Absolutely positioned children of flexboxes</title>
<link rel="author" title="Google Inc." href="http://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta name="flags" content="dom">
<meta name="assert" content="Checks that we correctly position abspos children
in a number of writing modes and alignments">
<style>
body {
margin: 0;
}
.title {
margin-top: 1em;
}
.flexbox {
display: flex;
background-color: #aaa;
position: relative;
}
.flexbox div {
border: 0;
flex: none;
}
.horizontal-tb {
writing-mode: horizontal-tb;
}
.vertical-rl {
writing-mode: vertical-rl;
}
.vertical-lr {
writing-mode: vertical-lr;
}
.row {
flex-flow: row;
}
.row-reverse {
flex-flow: row-reverse;
}
.column {
flex-flow: column;
}
.column-reverse {
flex-flow: column-reverse;
}
.flexbox :nth-child(1) {
background-color: blue;
}
.flexbox :nth-child(2) {
background-color: green;
}
.rtl {
direction: rtl;
}
.ltr {
direction: ltr;
}
.justify-content-flex-start {
justify-content: flex-start;
}
.justify-content-flex-end {
justify-content: flex-end;
}
.justify-content-center {
justify-content: center;
}
.justify-content-space-between {
justify-content: space-between;
}
.justify-content-space-around {
justify-content: space-around;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flexbox')">
<div id=log></div>
<script>
// Each flexbox has two abspos children - one is 40x10, the other 10x20.
// The flexbox itself is 80x20.
// All that is flipped for vertical flows.
var expectations = {
'horizontal-tb': {
'row': {
'ltr': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [40, 0],
'child2': [70, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
'rtl': {
'flex-start': {
'child1': [40, 0],
'child2': [70, 0],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [40, 0],
'child2': [70, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
},
'column': {
'ltr': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [0, 40],
'child2': [0, 70],
},
'center': {
'child1': [0, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [0, 20],
'child2': [0, 35],
},
},
'rtl': {
'flex-start': {
'child1': [10, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [10, 40],
'child2': [0, 70],
},
'center': {
'child1': [10, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [10, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [10, 20],
'child2': [0, 35],
},
},
},
'row-reverse': {
'ltr': {
'flex-start': {
'child1': [40, 0],
'child2': [70, 0],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [40, 0],
'child2': [70, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
'rtl': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [40, 0],
'child2': [70, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
},
'column-reverse': {
'ltr': {
'flex-start': {
'child1': [0, 40],
'child2': [0, 70],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [0, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [0, 40],
'child2': [0, 70],
},
'space-around': {
'child1': [0, 20],
'child2': [0, 35],
},
},
'rtl': {
'flex-start': {
'child1': [10, 40],
'child2': [0, 70],
},
'flex-end': {
'child1': [10, 0],
'child2': [0, 0],
},
'center': {
'child1': [10, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [10, 40],
'child2': [0, 70],
},
'space-around': {
'child1': [10, 20],
'child2': [0, 35],
},
},
},
},
'vertical-rl': {
'row': {
'ltr': {
'flex-start': {
'child1': [10, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [10, 40],
'child2': [0, 70],
},
'center': {
'child1': [10, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [10, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [10, 20],
'child2': [0, 35],
},
},
'rtl': {
'flex-start': {
'child1': [10, 40],
'child2': [0, 70],
},
'flex-end': {
'child1': [10, 0],
'child2': [0, 0],
},
'center': {
'child1': [10, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [10, 40],
'child2': [0, 70],
},
'space-around': {
'child1': [10, 20],
'child2': [0, 35],
},
},
},
'column': {
'ltr': {
'flex-start': {
'child1': [40, 0],
'child2': [70, 0],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [40, 0],
'child2': [70, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
'rtl': {
'flex-start': {
'child1': [40, 10],
'child2': [70, 0],
},
'flex-end': {
'child1': [0, 10],
'child2': [0, 0],
},
'center': {
'child1': [20, 10],
'child2': [35, 0],
},
'space-between': {
'child1': [40, 10],
'child2': [70, 0],
},
'space-around': {
'child1': [20, 10],
'child2': [35, 0],
},
},
},
'row-reverse': {
'ltr': {
'flex-start': {
'child1': [10, 40],
'child2': [0, 70],
},
'flex-end': {
'child1': [10, 0],
'child2': [0, 0],
},
'center': {
'child1': [10, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [10, 40],
'child2': [0, 70],
},
'space-around': {
'child1': [10, 20],
'child2': [0, 35],
},
},
'rtl': {
'flex-start': {
'child1': [10, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [10, 40],
'child2': [0, 70],
},
'center': {
'child1': [10, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [10, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [10, 20],
'child2': [0, 35],
},
},
},
'column-reverse': {
'ltr': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [40, 0],
'child2': [70, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
'rtl': {
'flex-start': {
'child1': [0, 10],
'child2': [0, 0],
},
'flex-end': {
'child1': [40, 10],
'child2': [70, 0],
},
'center': {
'child1': [20, 10],
'child2': [35, 0],
},
'space-between': {
'child1': [0, 10],
'child2': [0, 0],
},
'space-around': {
'child1': [20, 10],
'child2': [35, 0],
},
},
},
},
'vertical-lr': {
'row': {
'ltr': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [0, 40],
'child2': [0, 70],
},
'center': {
'child1': [0, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [0, 20],
'child2': [0, 35],
},
},
'rtl': {
'flex-start': {
'child1': [0, 40],
'child2': [0, 70],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [0, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [0, 40],
'child2': [0, 70],
},
'space-around': {
'child1': [0, 20],
'child2': [0, 35],
},
},
},
'column': {
'ltr': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [40, 0],
'child2': [70, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
'rtl': {
'flex-start': {
'child1': [0, 10],
'child2': [0, 0],
},
'flex-end': {
'child1': [40, 10],
'child2': [70, 0],
},
'center': {
'child1': [20, 10],
'child2': [35, 0],
},
'space-between': {
'child1': [0, 10],
'child2': [0, 0],
},
'space-around': {
'child1': [20, 10],
'child2': [35, 0],
},
},
},
'row-reverse': {
'ltr': {
'flex-start': {
'child1': [0, 40],
'child2': [0, 70],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [0, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [0, 40],
'child2': [0, 70],
},
'space-around': {
'child1': [0, 20],
'child2': [0, 35],
},
},
'rtl': {
'flex-start': {
'child1': [0, 0],
'child2': [0, 0],
},
'flex-end': {
'child1': [0, 40],
'child2': [0, 70],
},
'center': {
'child1': [0, 20],
'child2': [0, 35],
},
'space-between': {
'child1': [0, 0],
'child2': [0, 0],
},
'space-around': {
'child1': [0, 20],
'child2': [0, 35],
},
},
},
'column-reverse': {
'ltr': {
'flex-start': {
'child1': [40, 0],
'child2': [70, 0],
},
'flex-end': {
'child1': [0, 0],
'child2': [0, 0],
},
'center': {
'child1': [20, 0],
'child2': [35, 0],
},
'space-between': {
'child1': [40, 0],
'child2': [70, 0],
},
'space-around': {
'child1': [20, 0],
'child2': [35, 0],
},
},
'rtl': {
'flex-start': {
'child1': [40, 10],
'child2': [70, 0],
},
'flex-end': {
'child1': [0, 10],
'child2': [0, 0],
},
'center': {
'child1': [20, 10],
'child2': [35, 0],
},
'space-between': {
'child1': [40, 10],
'child2': [70, 0],
},
'space-around': {
'child1': [20, 10],
'child2': [35, 0],
},
},
},
},
};
var writingModes = ['horizontal-tb', 'vertical-rl', 'vertical-lr'];
var flexDirections = ['row', 'column', 'row-reverse', 'column-reverse'];
var directions = ['ltr', 'rtl'];
var justifyContents = ['flex-start', 'flex-end', 'center', 'space-between', 'space-around'];
function mainAxisDirection(writingMode, flexDirection)
{
if ((writingMode.indexOf('horizontal') != -1 && flexDirection.indexOf('row') != -1)
|| (writingMode.indexOf('vertical') != -1 && flexDirection.indexOf('column') != -1))
return 'width';
return 'height';
}
function addChild(flexbox, mainAxis, crossAxis, mainAxisLength, crossAxisLength, expectations)
{
var child = document.createElement('div');
child.setAttribute('style', mainAxis + ': ' + mainAxisLength + 'px;'
+ crossAxis + ': ' + crossAxisLength + 'px; position: absolute;');
child.setAttribute("data-expected-" + mainAxis, mainAxisLength);
child.setAttribute("data-expected-" + crossAxis, crossAxisLength);
child.setAttribute("data-offset-x", expectations[0]);
child.setAttribute("data-offset-y", expectations[1]);
flexbox.appendChild(child);
}
writingModes.forEach(function(writingMode) {
flexDirections.forEach(function(flexDirection) {
directions.forEach(function(direction) {
justifyContents.forEach(function(justifyContent) {
var flexboxClassName = writingMode + ' ' + direction + ' ' + flexDirection + ' justify-content-' + justifyContent;
var title = document.createElement('div');
title.className = 'title';
title.innerHTML = flexboxClassName;
document.body.appendChild(title);
var mainAxis = mainAxisDirection(writingMode, flexDirection);
var crossAxis = (mainAxis == 'width') ? 'height' : 'width';
var flexbox = document.createElement('div');
flexbox.className = 'flexbox ' + flexboxClassName;
flexbox.setAttribute('style', mainAxis + ': 80px;' + crossAxis + ': 20px');
var baselineMargin = (flexDirection.indexOf('row') != -1) ? 'margin-block-start: 5px' : 'margin-inline-start: 5px';
var testExpectations = expectations[writingMode][flexDirection][direction][justifyContent];
addChild(flexbox, mainAxis, crossAxis, 40, 10, testExpectations['child1']);
addChild(flexbox, mainAxis, crossAxis, 10, 20, testExpectations['child2']);
document.body.appendChild(flexbox);
})
})
})
})
</script>
</body>

View file

@ -0,0 +1,160 @@
<!DOCTYPE html>
<html>
<title>CSS Test: Absolutely positioned children of flexboxes</title>
<link href="../support/flexbox.css" rel="stylesheet">
<link rel="author" title="Google Inc." href="http://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta name="flags" content="dom">
<meta name="assert" content="Checks that we correctly position abspos children
with different alignments and dynamic changes">
<style>
body {
margin: 0;
}
.flexbox {
background-color: green;
height: 100px;
width: 100px;
margin: 10px;
}
.flexbox > * {
flex: none;
}
.relative {
position: relative;
}
.flexbox > div {
width: 20px;
height: 20px;
}
.absolute {
position: absolute;
}
#placed-absolute {
top: 20px;
left: 20px;
}
.rtl {
direction: rtl;
}
.ltr {
direction: ltr;
}
.flexbox :nth-child(1) {
background-color: blue;
}
.flexbox :nth-child(2) {
background-color: yellow;
}
.flexbox :nth-child(3) {
background-color: salmon;
}
.flexbox :nth-child(4) {
background-color: grey;
}
.flexbox :nth-child(5) {
background-color: red;
}
.flexbox :nth-child(6) {
background-color: orange;
}
.flexbox :nth-child(7) {
background-color: purple;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flexbox')">
<div id=log></div>
<div class='flexbox relative align-items-center'>
<div id='placed-absolute' class='absolute' data-offset-x=20 data-offset-y=20></div>
</div>
<div class='flexbox relative align-items-center'>
<div data-offset-x=0 data-offset-y=40></div>
<div class='absolute' data-offset-x=0 data-offset-y=40></div>
<div data-offset-x=20 data-offset-y=40></div>
<div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div>
</div>
<div class="relative">
<div class='flexbox align-items-center'>
<div data-offset-x=10 data-offset-y=40></div>
<div class='absolute' data-offset-x=10 data-offset-y=40></div>
<div data-offset-x=30 data-offset-y=40></div>
<div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div>
</div>
</div>
<div class='flexbox relative column rtl'>
<div data-offset-x=80 data-offset-y=0></div>
<div class='absolute' data-offset-x=80 data-offset-y=0></div>
<div data-offset-x=80 data-offset-y=20></div>
<div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div>
</div>
<div class="relative">
<div class='flexbox wrap-reverse'>
<div style="width:90px" data-offset-x=10 data-offset-y=80></div>
<div class="absolute" data-offset-x=10 data-offset-y=80></div>
<div data-offset-x=10 data-offset-y=30></div>
<div class="absolute" data-offset-x=10 data-offset-y=80></div>
<div data-offset-x=30 data-offset-y=30></div>
<div class="absolute" data-offset-x=10 data-offset-y=80></div>
<div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div>
</div>
</div>
<div class='flexbox relative'>
<div style="margin: auto;" data-offset-x=40 data-offset-y=40></div>
<div class="absolute" style="margin: auto;" data-offset-x=0 data-offset-y=0></div>
<div class="absolute" style="margin: auto;" data-offset-x=0 data-offset-y=0></div>
<div class="absolute" style="margin: auto; top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div>
</div>
<div class='flexbox align-items-stretch relative'>
<div style="height: auto" data-offset-x=0 data-offset-y=0 data-expected-height=100></div>
<div class="absolute" style="height: auto" data-offset-x=0 data-offset-y=0 data-expected-height=0></div>
<div class="absolute" style="height: auto; top: 5px; left: 5px" data-offset-x=5 data-offset-y=5 data-expected-height=0></div>
</div>
<div class="flexbox wrap relative">
<div style="width: 100px;" data-offset-x=0 data-offset-y=0></div>
<div class="absolute" data-offset-x=0 data-offset-y=0></div>
<div style="width: 50px;" data-offset-x=0 data-offset-y=50></div>
<div class="absolute" data-offset-x=0 data-offset-y=0></div>
<div style="width: 50px;" data-offset-x=50 data-offset-y=50></div>
<div class="absolute" data-offset-x=0 data-offset-y=0></div>
</div>
<div class="flexbox wrap relative align-items-flex-end">
<div style="width: 100px;" data-offset-x=0 data-offset-y=30></div>
<div class="absolute" data-offset-x=0 data-offset-y=80></div>
<div style="width: 50px;" data-offset-x=0 data-offset-y=80></div>
<div class="absolute" data-offset-x=0 data-offset-y=80></div>
<div style="width: 50px;" data-offset-x=50 data-offset-y=80></div>
<div class="absolute" data-offset-x=0 data-offset-y=80></div>
</div>
<script>
var absolute = document.getElementById('placed-absolute');
var beforePosition = absolute.getBoundingClientRect();
document.querySelector('.flexbox').style.height = '101px';
var afterPosition = absolute.getBoundingClientRect();
// Positioned element should not change position when the height of it's parent flexbox is changed.
for (key in beforePosition) {
test(function() {
assert_equals(beforePosition[key], afterPosition[key]);
}, 'position of ' + key);
}
</script>
</body>
</html>

View file

@ -0,0 +1,96 @@
<!DOCTYPE html>
<title>CSS Test: Absolutely positioned children of flexboxes</title>
<link rel="author" title="Google Inc." href="http://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta name="flags" content="dom">
<meta name="assert" content="Checks that we correctly handle border and
padding in combination with abspos items">
<style>
.rect {
position: absolute;
width: 50px;
height: 50px;
background-color: green;
}
.flexbox {
position: relative;
width: 100px;
height: 100px;
outline: 3px solid black;
}
</style>
<link rel="stylesheet" href="../support/flexbox.css">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.rect')">
<div id=log></div>
<div class="flexbox" style="padding-top: 10px; padding-left: 20px;">
<div class="rect" data-offset-x="20" data-offset-y="10"></div>
</div>
<div class="flexbox column" style="padding-top: 10px; padding-left: 20px;">
<div class="rect" data-offset-x="20" data-offset-y="10"></div>
</div>
<div class="flexbox" style="writing-mode: vertical-lr; padding-top: 10px; padding-left: 20px;">
<div class="rect" data-offset-x="20" data-offset-y="10"></div>
</div>
<div class="flexbox column" style="writing-mode: vertical-lr; padding-top: 10px; padding-left: 20px;">
<div class="rect" data-offset-x="20" data-offset-y="10"></div>
</div>
<div class="flexbox" style="direction: rtl; padding-top: 10px; padding-right: 20px;">
<div class="rect" data-offset-x="50" data-offset-y="10"></div>
</div>
<div class="flexbox column" style="direction: rtl; padding-top: 10px; padding-right: 20px;">
<div class="rect" data-offset-x="50" data-offset-y="10"></div>
</div>
<div class="flexbox" style="direction: rtl; writing-mode: vertical-lr; padding-bottom: 10px; padding-left: 20px;">
<div class="rect" data-offset-x="20" data-offset-y="50"></div>
</div>
<div class="flexbox column" style="direction: rtl; writing-mode: vertical-lr; padding-bottom: 10px; padding-left: 20px;">
<div class="rect" data-offset-x="20" data-offset-y="50"></div>
</div>
<hr>
<div class="flexbox" style="border-top: 10px solid; border-left: 20px solid;">
<div class="rect" data-offset-x="0" data-offset-y="0"></div>
</div>
<div class="flexbox column" style="border-top: 10px solid; border-left: 20px solid;">
<div class="rect" data-offset-x="0" data-offset-y="0"></div>
</div>
<div class="flexbox" style="writing-mode: vertical-lr; border-top: 10px solid; border-left: 20px solid;">
<div class="rect" data-offset-x="0" data-offset-y="0"></div>
</div>
<div class="flexbox column" style="writing-mode: vertical-lr; border-top: 10px solid; border-left: 20px solid;">
<div class="rect" data-offset-x="0" data-offset-y="0"></div>
</div>
<div class="flexbox" style="direction: rtl; border-top: 10px solid; border-right: 20px solid;">
<div class="rect" data-offset-x="50" data-offset-y="0"></div>
</div>
<div class="flexbox column" style="direction: rtl; border-top: 10px solid; border-right: 20px solid;">
<div class="rect" data-offset-x="50" data-offset-y="0"></div>
</div>
<div class="flexbox" style="direction: rtl; writing-mode: vertical-lr; border-bottom: 10px solid; border-left: 20px solid;">
<div class="rect" data-offset-x="0" data-offset-y="50"></div>
</div>
<div class="flexbox column" style="direction: rtl; writing-mode: vertical-lr; border-bottom: 10px solid; border-left: 20px solid;">
<div class="rect" data-offset-x="0" data-offset-y="50"></div>
</div>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<title>CSS Test: Absolutely positioned children of flexboxes</title>
<link rel="author" title="Google Inc." href="http://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta name="flags" content="dom">
<meta name="assert" content="Checks that we correctly handle when a flex item
becomes absolutely positioned">
<style>
#flex {
display: flex;
position: relative;
background: red;
width: 500px;
height: 200px;
}
#item {
background: green;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<script>
function update() {
var item = document.getElementById("item");
item.offsetHeight;
item.style.position = "absolute";
item.offsetHeight;
checkLayout("#flex");
}
</script>
<body onload="update();">
<div id="flex">
<div id="item" data-expected-width="500"></div>
</div>

View file

@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<title>CSS Test: Absolutely positioned children of flexboxes</title>
<link rel="author" title="Google Inc." href="http://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<meta name="assert" content="Checks that we correctly position abspos children in a number of writing modes and alignments when containing block is grid.">
<style>
.abspos {
height: 50px;
width: 50px;
background: lightblue;
position: absolute;
flex: none;
}
.grid {
display: grid;
position: relative;
}
.title {
margin-top: 1em;
}
.flexbox {
display: flex;
background-color: #aaa;
height: 100px;
width: 100px;
}
.horizontal-tb {
writing-mode: horizontal-tb;
}
.vertical-rl {
writing-mode: vertical-rl;
}
.vertical-lr {
writing-mode: vertical-lr;
}
.rtl {
direction: rtl;
}
.ltr {
direction: ltr;
}
.align-items-flex-start {
align-items: flex-start;
}
.align-items-flex-end {
align-items: flex-end;
}
.justify-content-flex-start {
justify-content: flex-start;
}
.justify-content-flex-end {
justify-content: flex-end;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flexbox')">
<div id=log></div>
<script>
var writingModes = ['horizontal-tb', 'vertical-rl', 'vertical-lr'];
var directions = ['ltr', 'rtl'];
var justifyContents = ['flex-start', 'flex-end'];
var alignItems = ['flex-start', 'flex-end'];
var flexDirections = ['row', 'column', 'row-reverse', 'column-reverse'];
// These were harvested from Firefox 76.0b4.
var x = [0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50];
var y = [0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 50, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0];
var test_number = 1;
writingModes.forEach(function(flexWritingMode) {
flexDirections.forEach(function(flexDirection) {
directions.forEach(function(direction) {
justifyContents.forEach(function(justifyContent) {
alignItems.forEach(function(alignment) {
var flexboxClassName = flexWritingMode + ' ' + direction + ' ' + flexDirection + ' justify-content-' + justifyContent + ' align-items-' + alignment;
var title = document.createElement('div');
title.className = 'title';
title.innerHTML = flexboxClassName + " .flexbox " + (test_number++);
document.body.appendChild(title);
var flexbox = document.createElement('div');
flexbox.className = 'flexbox ' + flexboxClassName;
var child = document.createElement('div');
child.setAttribute('class', 'abspos');
child.setAttribute("data-offset-x", x.shift());
child.setAttribute("data-offset-y", y.shift());
flexbox.appendChild(child);
var relpos = document.createElement('div');
relpos.className = 'grid';
relpos.appendChild(flexbox);
document.body.appendChild(relpos);
})
})
})
})
})
</script>
</body>

View file

@ -0,0 +1,82 @@
<!doctype html>
<title>abspos flex children with top margins</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.org">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<link rel="bookmark" href="https://crbug.com/808750">
<meta name="flags" content="dom">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<style>
.container {
display: flex;
background: lightgray;
width: 250px;
height: 48px;
/* Add some margin so that overflowing things don't stomp on each other: */
margin: 50px 10px;
float: left;
position: relative;
}
.contentBox {
position: absolute;
/* Margin-box is 100px tall (2px of border + 98px of content): */
border: 1px solid teal;
height: 98px;
width: 98px;
left: 20px;
}
.marginBox {
position: absolute;
/* Margin-box is 100px tall
(60px of margin-top + 2px of border + 38px of content): */
margin-top: 60px;
border: 1px solid orange;
height: 38px;
width: 100px;
left: 120px;
}
</style>
<div class="container">
<div class="contentBox">
aaa
</div>
<div class="marginBox">
bbb
</div>
</div>
<div class="container" style="align-items: flex-end">
<div class="contentBox">
aaa
</div>
<div class="marginBox">
bbb
</div>
</div>
<div class="container" style="align-items: center">
<div class="contentBox">
aaa
</div>
<div class="marginBox">
bbb
</div>
</div>
<div id=log style="clear:both"></div>
<script>
test(function() {
var elements = document.querySelectorAll(".contentBox, .marginBox");
for (var i = 0; i < elements.length; i+=2) {
assert_equals(elements[i].getBoundingClientRect().bottom,
elements[i+1].getBoundingClientRect().bottom);
}
}, "The bottom of each pair of boxes should be the same");
</script>

View file

@ -0,0 +1,19 @@
<!doctype html>
<title>abspos flex children with top margins</title>
<link rel="author" title="Manuel Rego" href="mailto:rego@igalia.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<link rel="bookmark" href="https://crbug.com/886592">
<meta name="assert" content="Check abspos position of flex children with margins in justify-content: flex-end container.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<div style="display: flex; width: 200px; height: 100px; justify-content: flex-end; border: solid thick; position: relative;">
<div style="background: cyan; margin: 20px; position: absolute; width: 30px; height: 40px;" data-offset-x="150" id="abspos"></div>
</div>
<script>
checkLayout('#abspos');
</script>

View file

@ -0,0 +1,182 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of horizontal flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a horizontal flex container</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
width: 20px; /* Skinny, to force us to wrap */
height: 200px;
display: flex;
flex-wrap: wrap;
margin-right: 2px;
float: left;
background: lightgray;
}
div.a {
width: 20px;
height: 10px;
flex: none;
background: lightgreen;
}
div.b {
width: 20px;
height: auto; /* height comes from contents */
flex: none;
background: pink;
}
div.c {
width: 20px;
height: 40px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 10px;
height: 30px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="8" data-offset-y="8"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="30" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="110" data-offset-x="30" data-offset-y="98"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="30" data-offset-y="98"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="52" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="70" data-offset-x="52" data-offset-y="58"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="52" data-offset-y="58"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="52" data-offset-y="128"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="74" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="96" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="96" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="96" data-offset-y="18"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="118" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="118" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="118" data-offset-y="18"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="118" data-offset-y="48"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="140" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="162" data-offset-y="168"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="162" data-offset-y="178"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="162" data-offset-y="178"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="184" data-offset-y="128"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="184" data-offset-y="138"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="184" data-offset-y="138"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="184" data-offset-y="168"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="206" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="228" data-offset-y="88"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="228" data-offset-y="98"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="228" data-offset-y="98"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="250" data-offset-y="68"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="250" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="250" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="250" data-offset-y="108"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="272" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="294" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="294" data-offset-y="178"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="294" data-offset-y="178"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="316" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="316" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="316" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="316" data-offset-y="168"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="338" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="360" data-offset-y="48"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="360" data-offset-y="138"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="360" data-offset-y="138"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="382" data-offset-y="28"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="382" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="382" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="382" data-offset-y="148"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="404" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="426" data-offset-y="61"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="426" data-offset-y="125"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="426" data-offset-y="125"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="448" data-offset-y="38"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="448" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="448" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="448" data-offset-y="138"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="470" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="492" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="492" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="492" data-offset-y="18"></div></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="514" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="514" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="514" data-offset-y="18"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="514" data-offset-y="48"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="536" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="558" data-offset-y="168"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="558" data-offset-y="178"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="558" data-offset-y="178"></div></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="580" data-offset-y="128"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="580" data-offset-y="138"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="580" data-offset-y="138"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="580" data-offset-y="168"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,183 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of horizontal flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. Additionally,
the flex container derives its width from the "max-width" property. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a horizontal flex container</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
max-width: 20px; /* Skinny, to force us to wrap */
height: 200px;
display: flex;
flex-wrap: wrap;
margin-right: 2px;
float: left;
background: lightgray;
}
div.a {
height: 10px;
width: 20px;
flex: none;
background: lightgreen;
}
div.b {
height: auto; /* height comes from contents */
width: 20px;
flex: none;
background: pink;
}
div.c {
height: 40px;
width: 20px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 10px;
height: 30px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="8" data-offset-y="8"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="30" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="110" data-offset-x="30" data-offset-y="98"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="30" data-offset-y="98"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="52" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="70" data-offset-x="52" data-offset-y="58"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="52" data-offset-y="58"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="52" data-offset-y="128"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="74" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="96" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="96" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="96" data-offset-y="18"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="118" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="118" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="118" data-offset-y="18"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="118" data-offset-y="48"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="140" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="162" data-offset-y="168"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="162" data-offset-y="178"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="162" data-offset-y="178"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="184" data-offset-y="128"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="184" data-offset-y="138"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="184" data-offset-y="138"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="184" data-offset-y="168"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="206" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="228" data-offset-y="88"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="228" data-offset-y="98"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="228" data-offset-y="98"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="250" data-offset-y="68"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="250" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="250" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="250" data-offset-y="108"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="272" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="294" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="294" data-offset-y="178"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="294" data-offset-y="178"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="316" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="316" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="316" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="316" data-offset-y="168"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="338" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="360" data-offset-y="48"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="360" data-offset-y="138"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="360" data-offset-y="138"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="382" data-offset-y="28"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="382" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="382" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="382" data-offset-y="148"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="404" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="426" data-offset-y="61"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="426" data-offset-y="125"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="426" data-offset-y="125"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="448" data-offset-y="38"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="448" data-offset-y="78"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="448" data-offset-y="78"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="448" data-offset-y="138"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="470" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="492" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="492" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="492" data-offset-y="18"></div></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="514" data-offset-y="8"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="514" data-offset-y="18"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="514" data-offset-y="18"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="514" data-offset-y="48"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="536" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="558" data-offset-y="168"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="558" data-offset-y="178"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="558" data-offset-y="178"></div></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="580" data-offset-y="128"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="580" data-offset-y="138"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="580" data-offset-y="138"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="580" data-offset-y="168"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,182 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of row wrap-reverse flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a row wrap-reverse flex container</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
width: 20px; /* Skinny, to force us to wrap */
height: 200px;
display: flex;
flex-wrap: wrap-reverse;
margin-right: 2px;
float: left;
background: lightgray;
}
div.a {
width: 20px;
height: 10px;
flex: none;
background: lightgreen;
}
div.b {
width: 20px;
height: auto; /* height comes from contents */
flex: none;
background: pink;
}
div.c {
width: 20px;
height: 40px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 10px;
height: 30px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="8" data-offset-y="198"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="30" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="110" data-offset-x="30" data-offset-y="8"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="30" data-offset-y="8"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="52" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="70" data-offset-x="52" data-offset-y="88"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="52" data-offset-y="88"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="52" data-offset-y="48"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="74" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="96" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="96" data-offset-y="168"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="96" data-offset-y="168"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="118" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="118" data-offset-y="168"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="118" data-offset-y="168"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="118" data-offset-y="128"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="140" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="162" data-offset-y="38"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="162" data-offset-y="8"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="162" data-offset-y="8"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="184" data-offset-y="78"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="184" data-offset-y="48"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="184" data-offset-y="48"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="184" data-offset-y="8"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="206" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="228" data-offset-y="118"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="228" data-offset-y="88"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="228" data-offset-y="88"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="250" data-offset-y="138"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="250" data-offset-y="108"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="250" data-offset-y="108"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="250" data-offset-y="68"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="272" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="294" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="294" data-offset-y="8"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="294" data-offset-y="8"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="316" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="316" data-offset-y="108"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="316" data-offset-y="108"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="316" data-offset-y="8"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="338" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="360" data-offset-y="158"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="360" data-offset-y="48"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="360" data-offset-y="48"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="382" data-offset-y="178"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="382" data-offset-y="108"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="382" data-offset-y="108"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="382" data-offset-y="28"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="404" data-offset-y="103"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="426" data-offset-y="145"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="426" data-offset-y="61"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="426" data-offset-y="61"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="448" data-offset-y="168"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="448" data-offset-y="108"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="448" data-offset-y="108"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="448" data-offset-y="38"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="470" data-offset-y="8"></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="492" data-offset-y="38"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="492" data-offset-y="8"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="492" data-offset-y="8"></div></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="514" data-offset-y="78"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="514" data-offset-y="48"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="514" data-offset-y="48"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="514" data-offset-y="8"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="536" data-offset-y="198"></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="558" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="558" data-offset-y="168"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="558" data-offset-y="168"></div></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="20" data-expected-height="10" data-offset-x="580" data-offset-y="198"></div>
<div class="b" data-expected-width="20" data-expected-height="30" data-offset-x="580" data-offset-y="168"><div class="fixedSizeChild" data-expected-width="10" data-expected-height="30" data-offset-x="580" data-offset-y="168"></div></div>
<div class="c" data-expected-width="20" data-expected-height="40" data-offset-x="580" data-offset-y="128"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,182 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of vertical flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a vertical flex container</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
width: 200px;
height: 10px; /* Short, to force us to wrap */
display: flex;
flex-direction: column;
flex-wrap: wrap;
margin-bottom: 2px;
background: lightgray;
}
div.a {
width: 10px;
height: 10px;
flex: none;
background: lightgreen;
}
div.b {
width: auto; /* width comes from contents */
height: 10px;
flex: none;
background: pink;
}
div.c {
width: 40px;
height: 10px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 5px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="8"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="20"></div>
<div class="b" data-expected-width="110" data-expected-height="10" data-offset-x="98" data-offset-y="20"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="98" data-offset-y="20"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="32"></div>
<div class="b" data-expected-width="70" data-expected-height="10" data-offset-x="58" data-offset-y="32"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="58" data-offset-y="32"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="128" data-offset-y="32"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="44"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="56"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="56"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="56"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="68"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="68"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="68"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="48" data-offset-y="68"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="198" data-offset-y="80"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="168" data-offset-y="92"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="92"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="178" data-offset-y="92"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="128" data-offset-y="104"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="104"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="138" data-offset-y="104"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="168" data-offset-y="104"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="103" data-offset-y="116"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="88" data-offset-y="128"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="98" data-offset-y="128"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="98" data-offset-y="128"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="68" data-offset-y="140"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="140"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="140"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="108" data-offset-y="140"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="152"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="164"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="164"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="178" data-offset-y="164"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="176"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="176"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="176"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="168" data-offset-y="176"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="103" data-offset-y="188"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="48" data-offset-y="200"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="200"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="138" data-offset-y="200"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="28" data-offset-y="212"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="212"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="212"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="148" data-offset-y="212"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="103" data-offset-y="224"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="61" data-offset-y="236"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="125" data-offset-y="236"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="125" data-offset-y="236"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="38" data-offset-y="248"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="248"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="248"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="138" data-offset-y="248"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="260"></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="272"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="272"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="272"></div></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="284"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="284"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="284"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="48" data-offset-y="284"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="198" data-offset-y="296"></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="168" data-offset-y="308"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="308"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="178" data-offset-y="308"></div></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="128" data-offset-y="320"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="320"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="138" data-offset-y="320"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="168" data-offset-y="320"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,183 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of vertical flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. Additionally,
the flex container derives its height from the "max-height" property.-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a vertical flex container</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
width: 200px;
max-height: 10px; /* Short, to force us to wrap */
display: flex;
flex-direction: column;
flex-wrap: wrap;
margin-bottom: 2px;
background: lightgray;
}
div.a {
width: 10px;
height: 10px;
flex: none;
background: lightgreen;
}
div.b {
width: auto; /* width comes from contents */
height: 10px;
flex: none;
background: pink;
}
div.c {
width: 40px;
height: 10px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 5px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="8"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="20"></div>
<div class="b" data-expected-width="110" data-expected-height="10" data-offset-x="98" data-offset-y="20"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="98" data-offset-y="20"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="32"></div>
<div class="b" data-expected-width="70" data-expected-height="10" data-offset-x="58" data-offset-y="32"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="58" data-offset-y="32"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="128" data-offset-y="32"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="44"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="56"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="56"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="56"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="68"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="68"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="68"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="48" data-offset-y="68"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="198" data-offset-y="80"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="168" data-offset-y="92"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="92"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="178" data-offset-y="92"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="128" data-offset-y="104"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="104"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="138" data-offset-y="104"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="168" data-offset-y="104"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="103" data-offset-y="116"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="88" data-offset-y="128"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="98" data-offset-y="128"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="98" data-offset-y="128"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="68" data-offset-y="140"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="140"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="140"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="108" data-offset-y="140"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="152"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="164"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="164"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="178" data-offset-y="164"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="176"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="176"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="176"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="168" data-offset-y="176"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="103" data-offset-y="188"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="48" data-offset-y="200"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="200"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="138" data-offset-y="200"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="28" data-offset-y="212"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="212"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="212"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="148" data-offset-y="212"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="103" data-offset-y="224"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="61" data-offset-y="236"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="125" data-offset-y="236"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="125" data-offset-y="236"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="38" data-offset-y="248"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="248"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="78" data-offset-y="248"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="138" data-offset-y="248"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="260"></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="272"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="272"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="272"></div></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="8" data-offset-y="284"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="284"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="18" data-offset-y="284"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="48" data-offset-y="284"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="198" data-offset-y="296"></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="168" data-offset-y="308"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="308"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="178" data-offset-y="308"></div></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="10" data-offset-x="128" data-offset-y="320"></div>
<div class="b" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="320"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="5" data-offset-x="138" data-offset-y="320"></div></div>
<div class="c" data-expected-width="40" data-expected-height="10" data-offset-x="168" data-offset-y="320"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,182 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of column wrap-reverse flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a column wrap-reverse flex container</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
width: 200px;
height: 20px; /* Short, to force us to wrap */
display: flex;
flex-direction: column;
flex-wrap: wrap-reverse;
margin-bottom: 2px;
background: lightgray;
}
div.a {
width: 10px;
height: 20px;
flex: none;
background: lightgreen;
}
div.b {
width: auto; /* width comes from contents */
height: 20px;
flex: none;
background: pink;
}
div.c {
width: 40px;
height: 20px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 10px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="8"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="30"></div>
<div class="b" data-expected-width="110" data-expected-height="20" data-offset-x="8" data-offset-y="30"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="8" data-offset-y="30"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="52"></div>
<div class="b" data-expected-width="70" data-expected-height="20" data-offset-x="88" data-offset-y="52"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="88" data-offset-y="52"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="48" data-offset-y="52"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="74"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="96"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="168" data-offset-y="96"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="168" data-offset-y="96"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="118"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="168" data-offset-y="118"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="168" data-offset-y="118"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="128" data-offset-y="118"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="140"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="38" data-offset-y="162"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="8" data-offset-y="162"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="8" data-offset-y="162"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="78" data-offset-y="184"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="48" data-offset-y="184"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="48" data-offset-y="184"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="8" data-offset-y="184"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="103" data-offset-y="206"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="118" data-offset-y="228"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="88" data-offset-y="228"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="88" data-offset-y="228"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="138" data-offset-y="250"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="108" data-offset-y="250"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="108" data-offset-y="250"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="68" data-offset-y="250"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="272"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="294"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="8" data-offset-y="294"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="8" data-offset-y="294"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="316"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="108" data-offset-y="316"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="108" data-offset-y="316"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="8" data-offset-y="316"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="103" data-offset-y="338"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="158" data-offset-y="360"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="48" data-offset-y="360"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="48" data-offset-y="360"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="178" data-offset-y="382"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="108" data-offset-y="382"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="108" data-offset-y="382"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="28" data-offset-y="382"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="103" data-offset-y="404"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="145" data-offset-y="426"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="61" data-offset-y="426"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="61" data-offset-y="426"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="168" data-offset-y="448"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="108" data-offset-y="448"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="108" data-offset-y="448"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="38" data-offset-y="448"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="470"></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="38" data-offset-y="492"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="8" data-offset-y="492"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="8" data-offset-y="492"></div></div>
</div>
<div class="flexbox" style="align-content: start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="78" data-offset-y="514"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="48" data-offset-y="514"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="48" data-offset-y="514"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="8" data-offset-y="514"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="536"></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="558"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="168" data-offset-y="558"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="168" data-offset-y="558"></div></div>
</div>
<div class="flexbox" style="align-content: end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="580"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="168" data-offset-y="580"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="168" data-offset-y="580"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="128" data-offset-y="580"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,182 @@
<!doctype html>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Testcase with a series of horizontal flex containers, with 1-3 flex lines,
testing each possible value of the 'align-content' property. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: Testing 'align-content' in a vertical writing-mode flex container</title>
<link rel="author" title="Mihir Iyer" href="mailto:miyer@mozilla.com"/>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"/>
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-content-property"/>
<style>
div.flexbox {
width: 200px;
height: 20px; /* Short, to force us to wrap */
display: flex;
flex-wrap: wrap;
margin-bottom: 2px;
background: lightgray;
writing-mode: vertical-lr;
}
div.a {
width: 10px;
height: 20px;
flex: none;
background: lightgreen;
}
div.b {
width: auto;
height: 20px; /* height comes from contents */
flex: none;
background: pink;
}
div.c {
width: 40px;
height: 20px;
flex: none;
background: orange;
}
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 10px;
background: purple;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.flexbox div')">
<!-- default (stretch) -->
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="8"></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="30"></div>
<div class="b" data-expected-width="110" data-expected-height="20" data-offset-x="98" data-offset-y="30"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="98" data-offset-y="30"></div></div>
</div>
<div class="flexbox">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="52"></div>
<div class="b" data-expected-width="70" data-expected-height="20" data-offset-x="58" data-offset-y="52"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="58" data-offset-y="52"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="128" data-offset-y="52"></div>
</div>
<!-- flex-start -->
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="74"></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="96"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="18" data-offset-y="96"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="96"></div></div>
</div>
<div class="flexbox" style="align-content: flex-start">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="118"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="18" data-offset-y="118"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="18" data-offset-y="118"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="48" data-offset-y="118"></div>
</div>
<!-- flex-end -->
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="140"></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="168" data-offset-y="162"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="178" data-offset-y="162"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="162"></div></div>
</div>
<div class="flexbox" style="align-content: flex-end">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="128" data-offset-y="184"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="138" data-offset-y="184"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="184"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="168" data-offset-y="184"></div>
</div>
<!-- center -->
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="103" data-offset-y="206"></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="88" data-offset-y="228"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="98" data-offset-y="228"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="98" data-offset-y="228"></div></div>
</div>
<div class="flexbox" style="align-content: center">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="68" data-offset-y="250"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="78" data-offset-y="250"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="250"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="108" data-offset-y="250"></div>
</div>
<!-- space-between -->
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="272"></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="294"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="178" data-offset-y="294"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="178" data-offset-y="294"></div></div>
</div>
<div class="flexbox" style="align-content: space-between">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="316"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="78" data-offset-y="316"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="316"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="168" data-offset-y="316"></div>
</div>
<!-- space-around -->
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="103" data-offset-y="338"></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="48" data-offset-y="360"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="138" data-offset-y="360"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="138" data-offset-y="360"></div></div>
</div>
<div class="flexbox" style="align-content: space-around">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="28" data-offset-y="382"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="78" data-offset-y="382"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="382"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="148" data-offset-y="382"></div>
</div>
<!-- space-evenly -->
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="103" data-offset-y="404"></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="61" data-offset-y="426"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="125" data-offset-y="426"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="125" data-offset-y="426"></div></div>
</div>
<div class="flexbox" style="align-content: space-evenly">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="38" data-offset-y="448"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="78" data-offset-y="448"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="78" data-offset-y="448"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="138" data-offset-y="448"></div>
</div>
<!-- start -->
<div class="flexbox" style="align-content: start; flex-wrap: wrap-reverse">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="8" data-offset-y="470"></div>
</div>
<div class="flexbox" style="align-content: start; flex-wrap: wrap-reverse">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="38" data-offset-y="492"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="8" data-offset-y="492"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="8" data-offset-y="492"></div></div>
</div>
<div class="flexbox" style="align-content: start; flex-wrap: wrap-reverse">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="78" data-offset-y="514"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="48" data-offset-y="514"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="48" data-offset-y="514"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="8" data-offset-y="514"></div>
</div>
<!-- end -->
<div class="flexbox" style="align-content: end; flex-wrap: wrap-reverse">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="536"></div>
</div>
<div class="flexbox" style="align-content: end; flex-wrap: wrap-reverse">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="558"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="168" data-offset-y="558"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="168" data-offset-y="558"></div></div>
</div>
<div class="flexbox" style="align-content: end; flex-wrap: wrap-reverse">
<div class="a" data-expected-width="10" data-expected-height="20" data-offset-x="198" data-offset-y="580"></div>
<div class="b" data-expected-width="30" data-expected-height="20" data-offset-x="168" data-offset-y="580"><div class="fixedSizeChild" data-expected-width="30" data-expected-height="10" data-offset-x="168" data-offset-y="580"></div></div>
<div class="c" data-expected-width="40" data-expected-height="20" data-offset-x="128" data-offset-y="580"></div>
</div>
</body>
</html>

View file

@ -0,0 +1,77 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#propdef-align-content" />
<title>css-flexbox: Tests align-content with single-line flex-wrap: wrap</title>
<style>
.default {
display: flex;
flex-wrap: wrap;
position: relative;
height: 70px;
border: 1px solid red;
margin: 5px;
}
.default > div {
height: 20px;
}
.verticalWriting {
display: flex;
flex-wrap: wrap;
position: relative;
width: 70px;
border: 1px solid red;
margin: 5px;
writing-mode: vertical-lr;
}
.verticalWriting > div {
width: 20px;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
</head>
<body onload="checkLayout('.default, .verticalWriting'); ">
<div id=log></div>
<p>Test that we honor align-content even in single-line flex containers</p>
<div class="default" style="align-content: flex-start">
<div data-offset-y="0">This text should be at the top of its container</div>
</div>
<div class="default" style="align-content: flex-end">
<div data-offset-y="50">This text should be at the bottom of its container</div>
</div>
<div class="default" style="align-content: center">
<div data-offset-y="25">This text should be centered in its container</div>
</div>
<div class="default" style="align-content: space-between">
<div data-offset-y="0">This text should be at the top of its container</div>
</div>
<div class="default" style="align-content: space-around">
<div data-offset-y="25">This text should be centered in its container</div>
</div>
<div class="default" style="align-content: space-evenly">
<div data-offset-y="25">This text should be centered in its container</div>
</div>
<div class="default" style="align-content: stretch">
<div data-offset-y="0">This text should be at the top of its container</div>
</div>
<div class="verticalWriting" style="align-content: flex-start">
<div data-offset-x="0">This text should be at the left of its container</div>
</div>
<div class="verticalWriting" style="align-content: flex-end">
<div data-offset-x="50">This text should be at the right of its container</div>
</div>
<div class="verticalWriting" style="align-content: center">
<div data-offset-x="25">This text should be centered in its container</div>
</div>
<div class="verticalWriting" style="align-content: space-between">
<div data-offset-x="0">This text should be at the left of its container</div>
</div>
<div class="verticalWriting" style="align-content: space-around">
<div data-offset-x="25">This text should be centered in its container</div>
</div>
<div class="verticalWriting" style="align-content: stretch">
<div data-offset-x="0">This text should be at the left of its container</div>
</div>

View file

@ -0,0 +1,108 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#propdef-align-content" />
<title>css-flexbox: Tests align-content with flex-wrap: wrap</title>
<style>
.flex-horizontal {
width:600px;
display:flex;
height:100px;
background:gray;
margin-bottom:100px;
}
.flex-vertical {
width:100px;
display:flex;
flex-direction: column;
height:600px;
background:gray;
margin-top:200px;
margin-bottom:100px;
}
.item-horizontal {
width:150px;
background:yellow;
margin:10px;
flex:none;
}
.item-vertical {
height:150px;
background:yellow;
margin:10px;
flex:none;
}
.content1-horizontal {
width:100px;
height:150px;
background:red;
}
.content2-horizontal {
width:100px;
height:100px;
background:red;
}
.content3-horizontal {
width:100px;
height:50px;
background:red;
}
.content1-vertical {
width:150px;
height:100px;
background:red;
}
.content2-vertical {
width:100px;
height:100px;
background:red;
}
.content3-vertical {
width:50px;
height:100px;
background:red;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flex-horizontal, .flex-vertical');">
<div id=log></div>
<p>Test for crbug.com/362848: Flex box word-wrap is not adhering to spec</p>
<div class="flex-horizontal">
<div class="item-horizontal" data-expected-height="80"><div class="content1-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="80"><div class="content2-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="80"><div class="content3-horizontal"></div></div>
</div>
<div class="flex-horizontal" style="flex-wrap:wrap;">
<div class="item-horizontal" data-expected-height="150"><div class="content1-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="150"><div class="content2-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="150"><div class="content3-horizontal"></div></div>
</div>
<div class="flex-horizontal" style="flex-wrap:wrap;">
<div class="item-horizontal" data-expected-height="150"><div class="content1-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="150"><div class="content2-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="150"><div class="content3-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="150"><div class="content1-horizontal"></div></div>
<div class="item-horizontal" data-expected-height="150"><div class="content2-horizontal"></div></div>
</div>
<div class="flex-vertical">
<div class="item-vertical" data-expected-width="80"><div class="content1-vertical"></div></div>
<div class="item-vertical" data-expected-width="80"><div class="content2-vertical"></div></div>
<div class="item-vertical" data-expected-width="80"><div class="content3-vertical"></div></div>
</div>
<div class="flex-vertical" style="flex-wrap:wrap;">
<div class="item-vertical" data-expected-width="150"><div class="content1-vertical"></div></div>
<div class="item-vertical" data-expected-width="150"><div class="content2-vertical"></div></div>
<div class="item-vertical" data-expected-width="150"><div class="content3-vertical"></div></div>
</div>
<div class="flex-vertical" style="flex-wrap:wrap;">
<div class="item-vertical" data-expected-width="150"><div class="content1-vertical"></div></div>
<div class="item-vertical" data-expected-width="150"><div class="content2-vertical"></div></div>
<div class="item-vertical" data-expected-width="150"><div class="content3-vertical"></div></div>
<div class="item-vertical" data-expected-width="150"><div class="content1-vertical"></div></div>
<div class="item-vertical" data-expected-width="150"><div class="content2-vertical"></div></div>
</div>

View file

@ -0,0 +1,330 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#propdef-align-content" />
<title>css-flexbox: Tests align-content with flex-wrap: wrap</title>
<style>
.flexbox {
display: flex;
background-color: #aaa;
position: relative;
flex-wrap: wrap;
}
.horizontal {
width: 200px;
height: 120px;
}
.horizontal > div {
min-height: 20px;
}
.horizontal > :nth-child(1) {
width: 100px;
min-height: 10px;
}
.horizontal > :nth-child(2) {
width: 100px;
}
.horizontal > :nth-child(3) {
width: 200px;
}
.horizontal > :nth-child(4) {
width: 50px;
}
.vertical-rl {
writing-mode: vertical-rl;
width: 120px;
height: 20px;
}
.vertical-rl > div {
min-width: 20px;
}
.vertical-rl > :nth-child(1) {
height: 10px;
min-width: 10px;
}
.vertical-rl > :nth-child(2) {
height: 10px;
}
.vertical-rl > :nth-child(3) {
height: 20px;
}
.vertical-rl > :nth-child(4) {
height: 5px;
}
.flexbox :nth-child(1) {
background-color: lightblue;
}
.flexbox :nth-child(2) {
background-color: lightgreen;
}
.flexbox :nth-child(3) {
background-color: pink;
}
.flexbox :nth-child(4) {
background-color: yellow;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flexbox')">
<div id=log></div>
<p>Test to make sure that align-content works properly.</p>
<div data-expected-height="120" class="flexbox horizontal">
<div data-offset-x="0" data-offset-y="0" data-expected-height="40"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="40"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="40"></div>
<div data-offset-x="0" data-offset-y="80" data-expected-height="40"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: flex-start">
<div data-offset-x="0" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="20" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="20"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: flex-end">
<div data-offset-x="0" data-offset-y="60" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="60" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="80" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="100" data-expected-height="20"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: center">
<div data-offset-x="0" data-offset-y="30" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="30" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="50" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="70" data-expected-height="20"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: space-between">
<div data-offset-x="0" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="50" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="100" data-expected-height="20"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: space-evenly">
<div data-offset-x="0" data-offset-y="15" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="15" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="50" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="85" data-expected-height="20"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: space-around">
<div data-offset-x="0" data-offset-y="10" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="10" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="50" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="90" data-expected-height="20"></div>
</div>
<div data-expected-height="120" class="flexbox horizontal" style="align-content: stretch">
<div data-offset-x="0" data-offset-y="0" data-expected-height="40"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="40"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="40"></div>
<div data-offset-x="0" data-offset-y="80" data-expected-height="40"></div>
</div>
<!-- Negative overflow goes out the top. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: flex-end; height: 30px">
<div data-offset-x="0" data-offset-y="-30" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="-30" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="-10" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="10" data-expected-height="20"></div>
</div>
<!-- If we overflow, we should true center. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: center; height: 30px">
<div data-offset-x="0" data-offset-y="-15" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="-15" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="5" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="25" data-expected-height="20"></div>
</div>
<!-- If we overflow, we should be the same as flex-start. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-between; height: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="20" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="20"></div>
</div>
<!-- If we overflow, we should safe center. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-around; height: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="20" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="20"></div>
</div>
<!-- If we overflow, we should true center. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-evenly; height: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="20" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="20"></div>
</div>
<!-- Stretch should only grow, not shrink. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: stretch; height: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="100" data-offset-y="0" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="20" data-expected-height="20"></div>
<div data-offset-x="0" data-offset-y="40" data-expected-height="20"></div>
</div>
<!-- 0 lines should not crash. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-between; height: 30px">
</div>
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-around; height: 30px">
</div>
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-evenly; height: 30px">
</div>
<div data-expected-height="30" class="flexbox horizontal" style="align-content: stretch; height: 30px">
</div>
<!-- 1 line should not crash. -->
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-between; height: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-height="10"></div>
</div>
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-around; height: 30px">
<div data-offset-x="0" data-offset-y="10" data-expected-height="10"></div>
</div>
<div data-expected-height="30" class="flexbox horizontal" style="align-content: space-evenly; height: 30px">
<div data-offset-x="0" data-offset-y="10" data-expected-height="10"></div>
</div>
<div data-expected-height="30" class="flexbox horizontal" style="align-content: stretch; height: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-height="30"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl">
<div data-offset-x="80" data-offset-y="0" data-expected-width="40"></div>
<div data-offset-x="80" data-offset-y="10" data-expected-width="40"></div>
<div data-offset-x="40" data-offset-y="0" data-expected-width="40"></div>
<div data-offset-x="0" data-offset-y="0" data-expected-width="40"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: flex-start">
<div data-offset-x="100" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="100" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="80" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="60" data-offset-y="0" data-expected-width="20"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: flex-end">
<div data-offset-x="40" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="40" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="20" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="0" data-offset-y="0" data-expected-width="20"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: center">
<div data-offset-x="70" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="70" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="50" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="30" data-offset-y="0" data-expected-width="20"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: space-between">
<div data-offset-x="100" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="100" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="50" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="0" data-offset-y="0" data-expected-width="20"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: space-around">
<div data-offset-x="90" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="90" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="50" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="10" data-offset-y="0" data-expected-width="20"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: space-evenly">
<div data-offset-x="85" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="85" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="50" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="15" data-offset-y="0" data-expected-width="20"></div>
</div>
<div data-expected-width="120" class="flexbox vertical-rl" style="align-content: stretch">
<div data-offset-x="80" data-offset-y="0" data-expected-width="40"></div>
<div data-offset-x="80" data-offset-y="10" data-expected-width="40"></div>
<div data-offset-x="40" data-offset-y="0" data-expected-width="40"></div>
<div data-offset-x="0" data-offset-y="0" data-expected-width="40"></div>
</div>
<!-- Negative overflow goes out the right. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: flex-end; width: 30px;">
<div data-offset-x="40" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="40" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="20" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="0" data-offset-y="0" data-expected-width="20"></div>
</div>
<!-- If we overflow, we should true center. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: center; width: 30px;">
<div data-offset-x="25" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="25" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="5" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="-15" data-offset-y="0" data-expected-width="20"></div>
</div>
<!-- If we overflow, we should be the same as flex-start. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-between; width: 30px;">
<div data-offset-x="10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="10" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="-10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="-30" data-offset-y="0" data-expected-width="20"></div>
</div>
<!-- If we overflow, we should safe center. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-around; width: 30px;">
<div data-offset-x="10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="10" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="-10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="-30" data-offset-y="0" data-expected-width="20"></div>
</div>
<!-- If we overflow, we should true center. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-evenly; width: 30px;">
<div data-offset-x="10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="10" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="-10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="-30" data-offset-y="0" data-expected-width="20"></div>
</div>
<!-- Stretch should only grow, not shrink. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: stretch; width: 30px;">
<div data-offset-x="10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="10" data-offset-y="10" data-expected-width="20"></div>
<div data-offset-x="-10" data-offset-y="0" data-expected-width="20"></div>
<div data-offset-x="-30" data-offset-y="0" data-expected-width="20"></div>
</div>
<!-- 0 lines should not crash. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-between; width: 30px">
</div>
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-around; width: 30px">
</div>
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-evenly; width: 30px">
</div>
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: stretch; width: 30px">
</div>
<!-- 1 line should not crash. -->
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-between; width: 30px">
<div data-offset-x="20" data-offset-y="0" data-expected-width="10"></div>
</div>
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-around; width: 30px">
<div data-offset-x="10" data-offset-y="0" data-expected-width="10"></div>
</div>
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: space-evenly; width: 30px">
<div data-offset-x="10" data-offset-y="0" data-expected-width="10"></div>
</div>
<div data-expected-width="30" class="flexbox vertical-rl" style="align-content: stretch; width: 30px">
<div data-offset-x="0" data-offset-y="0" data-expected-width="30"></div>
</div>

View file

@ -0,0 +1,54 @@
<!doctype html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#propdef-align-content" />
<link rel="help" href="https://drafts.csswg.org/css-align-3/#positional-values" />
<meta name="assert" content="Flex items are positioned correctly in wrap-reverse align-content:start/end containers in either text direction.">
<style>
.flexbox {
display: flex;
width: 75px; /* make the row flexbox wrap */
height: 150px;
flex-wrap: wrap-reverse;
position: relative;
float: left;
margin-right: 20px;
border: 1px solid black;
}
.flexitem {
width: 50px;
height: 50px;
}
.flexbox :nth-child(1) {
background-color: blue;
}
.flexbox :nth-child(2) {
background-color: orange;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flexitem')">
<div class=flexbox style="align-content: start;">
<div class=flexitem data-offset-x=0 data-offset-y=50></div>
<div class=flexitem data-offset-x=0 data-offset-y=0></div>
</div>
<div class=flexbox style="align-content: end;">
<div class=flexitem data-offset-x=0 data-offset-y=100></div>
<div class=flexitem data-offset-x=0 data-offset-y=50></div>
</div>
<div class=flexbox style="align-content: start; direction: rtl;">
<div class=flexitem data-offset-x=25 data-offset-y=50></div>
<div class=flexitem data-offset-x=25 data-offset-y=0></div>
</div>
<div class=flexbox style="align-content: end; direction: rtl">
<div class=flexitem data-offset-x=25 data-offset-y=100></div>
<div class=flexitem data-offset-x=25 data-offset-y=50></div>
</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-lr;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-lr;
}
.inner {
display: flex;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-x="21">
<div>two<br>lines</div>
</div>
<div data-offset-x="56">hello</div>
</div>
</body>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-lr;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-lr;
}
.inner {
display: grid;
grid-template: auto / auto;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-x="21">
<div>two<br>lines</div>
</div>
<div data-offset-x="56">hello</div>
</div>
</body>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-lr;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-lr;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-x="21">two<br>lines</div>
<div data-offset-x="51">hello</div>
</div>
</body>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-lr;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-lr;
}
.inner {
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > *')">
<div id="target">
<table class="inner" data-offset-x="21">
<tr>
<td style="vertical-align: baseline;">
<div>two<br>lines</div>
</td>
</tr>
</table>
<div data-offset-x="59">hello</div>
</div>
</body>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
font-size: 16px;
line-height: 16px;
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-rl;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-rl;
}
.inner {
display: flex;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-x="146">
<div>two<br>lines</div>
</div>
<div data-offset-x="191">hello</div>
</div>
</body>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-rl;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-rl;
}
.inner {
display: grid;
grid-template: auto / auto;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-x="146">
<div>two<br>lines</div>
</div>
<div data-offset-x="191">hello</div>
</div>
</body>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-rl;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-rl;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-x="161">two<br>lines</div>
<div data-offset-x="201">hello</div>
</div>
</body>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: vertical-rl;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: vertical-rl;
}
.inner {
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > *')">
<div id="target">
<table class="inner" data-offset-x="140">
<tr>
<td style="vertical-align: baseline;">
<div>two<br>lines</div>
</td>
</tr>
</table>
<div data-offset-x="188">hello</div>
</div>
</body>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-lr;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
.inner {
display: flex;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-y="11">
<div>two<br>lines</div>
</div>
<div data-offset-y="21">hello</div>
</div>
</body>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-lr;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
.inner {
display: grid;
grid-template: auto / auto;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-y="11">
<div>two<br>lines</div>
</div>
<div data-offset-y="21">hello</div>
</div>
</body>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-lr;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-y="11">two<br>lines</div>
<div data-offset-y="11">hello</div>
</div>
</body>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-lr;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
.inner {
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<table class="inner" data-offset-y="130">
<tr>
<td style="vertical-align: baseline;">
<div>two<br>lines</div>
</td>
</tr>
</table>
<div data-offset-y="24">hello</div>
</div>
</body>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-rl;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
.inner {
display: flex;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-y="11">
<div>two<br>lines</div>
</div>
<div data-offset-y="21">hello</div>
</div>
</body>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-rl;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
.inner {
display: grid;
grid-template: auto / auto;
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div class="inner" data-offset-y="11">
<div>two<br>lines</div>
</div>
<div data-offset-y="21">hello</div>
</div>
</body>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
width: 200px;
writing-mode: vertical-rl;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-y="11">two<br>lines</div>
<div data-offset-y="11">hello</div>
</div>
</body>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<link rel="author" href="mailto:sammy.gill@apple.com" title="Sammy Gill">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<style>
#target {
display: flex;
flex-direction: column;
writing-mode: vertical-rl;
align-items: baseline;
border: 3px solid black;
font-family: monospace;
font-size: 10px;
line-height: 10px;
}
#target > :nth-child(1) {
background: hotpink;
writing-mode: horizontal-tb;
padding-left: 30px;
margin-left: 10px;
}
#target > :nth-child(2) {
background: papayawhip;
writing-mode: horizontal-tb;
}
.inner {
border: 5px solid black;
padding: 5px;
}
</style>
<body onload="checkLayout('#target > div')">
<div id="target">
<table class="inner" data-offset-y="130">
<tr>
<td style="vertical-align: baseline;">
<div>two<br>lines</div>
</td>
</tr>
</table>
<div data-offset-y="24">hello</div>
</div>
</body>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<title>CSS Flexbox: align-self: center content with flex-direction: column.</title>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
<link rel="help" href="https://drafts.csswg.org/css-align/#align-self-property">
<link rel="help" href="https://crbug.com/750553"/>
<meta name="assert" content="This test ensures that no unnecessary horizontal offset is applied to inline content in a 'align-self: center' box, inside of a flexbox with 'flex-direction: column'."/>
<style>
html, body {
margin: 0;
}
body {
display: flex;
flex-direction: column;
}
.content {
align-self: center;
}
.content > div {
width: 400px;
display: inline-block;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.content')">
<div class="content" data-offset-x="0">
<div data-offset-x="0">X</div>
<div>X</div>
<div>X</div>
<div>X</div>
<div>X</div>
</div>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
flex-direction: column;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
}
#target > :nth-child(1) {
background: lime;
margin-right: 20px;
padding-right: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-rl;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-lr;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-lr;
}
#target > :nth-child(4) {
background: orange;
margin-left: 20px;
padding-left: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-lr;
}
#target > :nth-child(5) {
background: cyan;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-rl;
}
#target > :nth-child(6) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-rl;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-x="120">line1<br>line2</div>
<div data-offset-x="105">line1<br>line2</div>
<div data-offset-x="126">line1<br>line2</div>
<div data-offset-x="20">line1<br>line2</div>
<div data-offset-x="35">line1<br>line2</div>
<div data-offset-x="42">line1<br>line2</div>
</div>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
writing-mode: vertical-lr;
}
#target > :nth-child(1) {
background: lime;
margin-right: 20px;
padding-right: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-rl;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-lr;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-lr;
}
#target > :nth-child(4) {
background: orange;
margin-left: 20px;
padding-left: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-lr;
}
#target > :nth-child(5) {
background: cyan;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-rl;
}
#target > :nth-child(6) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-rl;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-x="120">line1<br>line2</div>
<div data-offset-x="105">line1<br>line2</div>
<div data-offset-x="126">line1<br>line2</div>
<div data-offset-x="20">line1<br>line2</div>
<div data-offset-x="35">line1<br>line2</div>
<div data-offset-x="42">line1<br>line2</div>
</div>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
writing-mode: vertical-rl;
}
#target > :nth-child(1) {
background: lime;
margin-right: 20px;
padding-right: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-rl;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-lr;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-lr;
}
#target > :nth-child(4) {
background: orange;
margin-left: 20px;
padding-left: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-lr;
}
#target > :nth-child(5) {
background: cyan;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-rl;
}
#target > :nth-child(6) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-rl;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-x="120">line1<br>line2</div>
<div data-offset-x="105">line1<br>line2</div>
<div data-offset-x="126">line1<br>line2</div>
<div data-offset-x="20">line1<br>line2</div>
<div data-offset-x="35">line1<br>line2</div>
<div data-offset-x="42">line1<br>line2</div>
</div>

View file

@ -0,0 +1,69 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
flex-wrap: wrap-reverse;
flex-direction: column;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
}
#target > :nth-child(1) {
background: lime;
margin-right: 20px;
padding-right: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-rl;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-lr;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-lr;
}
#target > :nth-child(4) {
background: orange;
margin-left: 20px;
padding-left: 20px;
font-size: 20px;
line-height: 20px;
align-self: first baseline;
writing-mode: vertical-lr;
}
#target > :nth-child(5) {
background: cyan;
font-size: 30px;
line-height: 30px;
writing-mode: vertical-rl;
}
#target > :nth-child(6) {
background: papayawhip;
font-size: 16px;
line-height: 16px;
writing-mode: vertical-rl;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-x="15">line1<br>line2</div>
<div data-offset-x="0">line1<br>line2</div>
<div data-offset-x="21">line1<br>line2</div>
<div data-offset-x="125">line1<br>line2</div>
<div data-offset-x="140">line1<br>line2</div>
<div data-offset-x="147">line1<br>line2</div>
</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
line-height: 0;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cornflowerblue 3px;
outline-offset: -3px;
}
#target > div {
flex: none;
}
#target > :nth-child(1) {
background: lime;
margin-bottom: 20px;
padding-bottom: 20px;
font-size: 20px;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 10px;
writing-mode: vertical-lr;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-y="20"><span></span><br><span></span></div>
<div data-offset-y="0"><span></span><br><span></span></div>
<div data-offset-y="50"><span></span><br><span></span></div>
</div>

View file

@ -0,0 +1,52 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
flex-direction: column;
height: 100px;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
line-height: 0;
writing-mode: vertical-rl;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cornflowerblue 3px;
outline-offset: -3px;
}
#target > div {
flex: none;
}
#target > :nth-child(1) {
background: lime;
margin-bottom: 20px;
padding-bottom: 20px;
font-size: 20px;
writing-mode: horizontal-tb;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
writing-mode: horizontal-tb;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 10px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-y="20"><span></span><br><span></span></div>
<div data-offset-y="0"><span></span><br><span></span></div>
<div data-offset-y="55"><span></span><br><span></span></div>
</div>

View file

@ -0,0 +1,52 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-rules">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#cross-alignment">
<style>
#target {
display: flex;
flex-direction: column;
height: 100px;
align-items: last baseline;
width: 200px;
border: solid 3px;
position: relative;
line-height: 0;
writing-mode: vertical-lr;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cornflowerblue 3px;
outline-offset: -3px;
}
#target > div {
flex: none;
}
#target > :nth-child(1) {
background: lime;
margin-bottom: 20px;
padding-bottom: 20px;
font-size: 20px;
writing-mode: horizontal-tb;
}
#target > :nth-child(2) {
background: hotpink;
font-size: 30px;
writing-mode: horizontal-tb;
}
#target > :nth-child(3) {
background: papayawhip;
font-size: 10px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('#target > div')">
<div id="target">
<div data-offset-y="20"><span></span><br><span></span></div>
<div data-offset-y="0"><span></span><br><span></span></div>
<div data-offset-y="55"><span></span><br><span></span></div>
</div>

View file

@ -0,0 +1,46 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7656#issuecomment-1248617134">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
}
.target > div {
background: hotpink;
font-size: 30px;
}
fieldset {
padding: 10px;
border: solid 10px;
margin: 0;
font-size: 20px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-y="20"><span></span></div>
<fieldset data-offset-y="0">
<legend><span></span></legend>
<span></span><br><span></span>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="40"><span></span></div>
<fieldset data-offset-y="0">
<span></span><br><span></span>
<legend><span></span></legend>
</table>
</div>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7656#issuecomment-1248617134">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
writing-mode: vertical-rl;
}
.target > div {
background: hotpink;
font-size: 30px;
}
fieldset {
padding: 10px;
border: solid 10px;
margin: 0;
font-size: 20px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="35"><span></span></div>
<fieldset data-offset-x="0">
<legend><span></span></legend>
<span></span><br><span></span>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="15"><span></span></div>
<fieldset data-offset-x="0">
<span></span><br><span></span>
<legend><span></span></legend>
</table>
</div>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7656#issuecomment-1248617134">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
writing-mode: vertical-lr;
}
.target > div {
background: hotpink;
font-size: 30px;
}
fieldset {
padding: 10px;
border: solid 10px;
margin: 0;
font-size: 20px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<fieldset data-offset-x="0">
<legend><span></span></legend>
<span></span><br><span></span>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="45"><span></span></div>
<fieldset data-offset-x="0">
<span></span><br><span></span>
<legend><span></span></legend>
</table>
</div>

View file

@ -0,0 +1,260 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 200px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
}
.inner {
display: flex;
border: solid 5px;
padding: 10px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-y="15"><span></span></div>
<div class="inner" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="35"><span></span></div>
<div class="inner" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="35"><span></span></div>
<div class="inner" style="flex-direction: row-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="15"><span></span></div>
<div class="inner" style="flex-direction: row-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="15"><span></span></div>
<div class="inner" style="flex-direction: column;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="45"><span></span></div>
<div class="inner" style="flex-direction: column;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="35"><span></span></div>
<div class="inner" style="flex-direction: column-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="45"><span></span></div>
<div class="inner" style="flex-direction: column-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<!-- flex-wrap: wrap -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="25"><span></span></div>
<div class="inner" style="flex-wrap: wrap; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="70"><span></span></div>
<div class="inner" style="flex-wrap: wrap; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="35"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: row-reverse; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="45"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: row-reverse; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="25"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="50"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="35"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column-reverse; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="55"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column-reverse; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<!-- flex-wrap: wrap-reverse -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="15"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="70"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="40"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: row-reverse; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="60"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: row-reverse; inline-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="15"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="55"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="45"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column-reverse; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="55"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column-reverse; block-size: 50px;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,261 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 200px;
margin-inline: 10px;
padding: 10px;
border: solid 3px;
writing-mode: vertical-rl;
}
.inner {
display: flex;
border: solid 5px;
padding: 10px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="40"><span></span></div>
<div class="inner" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="30"><span></span></div>
<div class="inner" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="30"><span></span></div>
<div class="inner" style="flex-direction: row-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="40"><span></span></div>
<div class="inner" style="flex-direction: row-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="50"><span></span></div>
<div class="inner" style="flex-direction: column;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="30"><span></span></div>
<div class="inner" style="flex-direction: column;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="40"><span></span></div>
<div class="inner" style="flex-direction: column-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="20"><span></span></div>
<div class="inner" style="flex-direction: column-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
</div>
</div>
<!-- flex-wrap: wrap -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="70"><span></span></div>
<div class="inner" style="flex-wrap: wrap; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="33"><span></span></div>
<div class="inner" style="flex-wrap: wrap; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="65"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: row-reverse; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="45"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: row-reverse; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="55"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="38"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="50"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column-reverse; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="20"><span></span></div>
<div class="inner" style="flex-wrap: wrap; flex-direction: column-reverse; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<!-- flex-wrap: wrap-reverse -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="75"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="30"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="63"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: row-reverse; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="35"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: row-reverse; inline-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="60"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="30"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="43"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column-reverse; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="inner" style="flex-wrap: wrap-reverse; flex-direction: column-reverse; block-size: 50px;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,129 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 200px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
}
.inner {
display: flex;
border: solid 5px;
padding: 10px;
gap: 10px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-y="45"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="45"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="55"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="55"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="115"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="115"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="115"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="115"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-y="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,130 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 200px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
writing-mode: vertical-rl;
}
.inner {
display: flex;
border: solid 5px;
padding: 10px;
gap: 10px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="110"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="110"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="45"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="45"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="40"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: first baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="40"><span></span></div>
<div class="inner" style="inline-size: 140px; flex-wrap: wrap-reverse;" data-offset-x="10">
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 50px;"><span></span></div>
<div style="font-size: 60px;"><span></span></div>
<div style="font-size: 40px; margin-block: 10px; align-self: last baseline;"><span></span></div>
<div style="font-size: 20px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,111 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 300px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
}
.inner {
display: grid;
gap: 10px;
grid-template: 50px 50px / 50px 50px 50px;
border: solid 5px;
padding: 10px;
}
.inner > div:first-child,
.inner > div:last-child {
align-self: start;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-y="35"><span></span></div>
<div class="inner" style="align-items: first baseline;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="100"><span></span></div>
<div class="inner" style="align-items: first baseline;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="55"><span></span></div>
<div class="inner" style="align-items: last baseline;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="115"><span></span></div>
<div class="inner" style="align-items: last baseline;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="25"><span></span></div>
<div class="inner" style="align-items: end;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="90"><span></span></div>
<div class="inner" style="align-items: end;" data-offset-y="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,112 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 300px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
writing-mode: vertical-rl;
}
.inner {
display: grid;
gap: 10px;
grid-template: 50px 50px / 50px 50px 50px;
border: solid 5px;
padding: 10px;
}
.inner > div:first-child,
.inner > div:last-child {
align-self: start;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="110"><span></span></div>
<div class="inner" style="align-items: first baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="48"><span></span></div>
<div class="inner" style="align-items: first baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="90"><span></span></div>
<div class="inner" style="align-items: last baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="33"><span></span></div>
<div class="inner" style="align-items: last baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="115"><span></span></div>
<div class="inner" style="align-items: end;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="53"><span></span></div>
<div class="inner" style="align-items: end;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,112 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-baselines">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 300px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
writing-mode: vertical-lr;
}
.inner {
display: grid;
gap: 10px;
grid-template: 50px 50px / 50px 50px 50px;
border: solid 5px;
padding: 10px;
}
.inner > div:first-child,
.inner > div:last-child {
align-self: start;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="30"><span></span></div>
<div class="inner" style="align-items: first baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="93"><span></span></div>
<div class="inner" style="align-items: first baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="50"><span></span></div>
<div class="inner" style="align-items: last baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="108"><span></span></div>
<div class="inner" style="align-items: last baseline;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="inner" style="align-items: end;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="88"><span></span></div>
<div class="inner" style="align-items: end;" data-offset-x="10">
<div style="font-size: 20px;"><span></span></div>
<div style="font-size: 10px;"><span></span></div>
<div style="font-size: 30px;"><span></span></div>
<div style="font-size: 15px;"><span></span></div>
<div style="font-size: 35px;"><span></span></div>
<div style="font-size: 25px;"><span></span></div>
</div>
</div>

View file

@ -0,0 +1,128 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-last-baseline">
<style>
.target {
display: flex;
inline-size: 100px;
position: relative;
line-height: 0;
padding: 10px;
}
.target > div {
background: hotpink;
font-size: 30px;
}
.line-clamp {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
border: solid 10px;
font-size: 40px !important;
overflow: hidden;
}
.line-clamp div {
background: orange;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<!-- Five lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><span></span><br><span></span><br><span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="110"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><span></span><br><span></span><br><span></span><br><span></span>
</div>
</div>
<!-- Two lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="70"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><span></span>
</div>
</div>
<!-- Three lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="110"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><span></span><br><span></span>
</div>
</div>
<!-- Wrapping div -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<div><span></span><br><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="110"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<div><span></span><br><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<!-- Nested div after first line -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><div><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="110"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><div><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<!-- Block within inline. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><i><span></span><div><span></span><br><span></span><br><span></span></div></i>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="110"><span></span></div>
<div class="line-clamp" data-offset-y="10">
<span></span><br><i><span></span><div><span></span><br><span></span><br><span></span></div></i>
</div>
</div>

View file

@ -0,0 +1,129 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-last-baseline">
<style>
.target {
display: flex;
inline-size: 100px;
position: relative;
line-height: 0;
padding: 10px;
writing-mode: vertical-rl;
}
.target > div {
background: hotpink;
font-size: 30px;
}
.line-clamp {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
border: solid 10px;
font-size: 40px !important;
overflow: hidden;
}
.line-clamp div {
background: orange;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<!-- Five lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span><br><span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span><br><span></span><br><span></span>
</div>
</div>
<!-- Two lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="65"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span>
</div>
</div>
<!-- Three lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span>
</div>
</div>
<!-- Wrapping div -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<div><span></span><br><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<div><span></span><br><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<!-- Nested div after first line -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><div><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><div><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<!-- Block within inline. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><i><span></span><div><span></span><br><span></span><br><span></span></div></i>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><i><span></span><div><span></span><br><span></span><br><span></span></div></i>
</div>
</div>

View file

@ -0,0 +1,129 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-last-baseline">
<style>
.target {
display: flex;
inline-size: 100px;
position: relative;
line-height: 0;
padding: 10px;
writing-mode: vertical-lr;
}
.target > div {
background: hotpink;
font-size: 30px;
}
.line-clamp {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
border: solid 10px;
font-size: 40px !important;
overflow: hidden;
}
.line-clamp div {
background: orange;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<!-- Five lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span><br><span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span><br><span></span><br><span></span>
</div>
</div>
<!-- Two lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="65"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span>
</div>
</div>
<!-- Three lines -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><span></span><br><span></span>
</div>
</div>
<!-- Wrapping div -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<div><span></span><br><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<div><span></span><br><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<!-- Nested div after first line -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><div><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><div><span></span><br><span></span><br><span></span><br><span></span></div>
</div>
</div>
<!-- Block within inline. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><i><span></span><div><span></span><br><span></span><br><span></span></div></i>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="105"><span></span></div>
<div class="line-clamp" data-offset-x="10">
<span></span><br><i><span></span><div><span></span><br><span></span><br><span></span></div></i>
</div>
</div>

View file

@ -0,0 +1,142 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7639">
<style>
.target {
display: flex;
inline-size: 100px;
position: relative;
line-height: 0;
padding: 10px;
}
.target > div {
background: hotpink;
font-size: 20px;
}
.multicol {
columns: 3;
column-fill: auto;
padding: 10px;
border: solid 10px;
}
.multicol > div {
break-inside: avoid;
break-before: column;
break-after: column;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<!-- Three columns, largest in the middle. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="20"><span></span></div>
<div class="multicol" data-offset-y="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="100"><span></span></div>
<div class="multicol" data-offset-y="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<!-- Start spanning element. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="30"><span></span></div>
<div class="multicol" data-offset-y="10">
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="140"><span></span></div>
<div class="multicol" data-offset-y="10">
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<!-- End spanning element. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-y="20"><span></span></div>
<div class="multicol" data-offset-y="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="140"><span></span></div>
<div class="multicol" data-offset-y="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
</div>
</div>

View file

@ -0,0 +1,144 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7639">
<style>
.target {
display: flex;
inline-size: 200px;
position: relative;
line-height: 0;
margin: 40px;
padding: 10px;
writing-mode: vertical-rl;
}
.target > div {
background: hotpink;
font-size: 20px;
}
.multicol {
columns: 3;
column-fill: auto;
padding: 10px;
border: solid 10px;
}
.multicol > div {
break-inside: avoid;
break-before: column;
break-after: column;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<!-- Three columns, largest in the middle. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="105"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="35"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<!-- Start spanning element. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="140"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="35"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<!-- End spanning element. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="145"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="30"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
</div>
</div>

View file

@ -0,0 +1,144 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7639">
<style>
.target {
display: flex;
inline-size: 200px;
position: relative;
line-height: 0;
margin: 40px;
padding: 10px;
writing-mode: vertical-lr;
}
.target > div {
background: hotpink;
font-size: 20px;
}
.multicol {
columns: 3;
column-fill: auto;
padding: 10px;
border: solid 10px;
}
.multicol > div {
break-inside: avoid;
break-before: column;
break-after: column;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<!-- Three columns, largest in the middle. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="95"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<!-- Start spanning element. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="30"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="135"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
</div>
</div>
<!-- End spanning element. -->
<div class="target" style="align-items: first baseline;">
<div data-offset-x="25"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="140"><span></span></div>
<div class="multicol" data-offset-x="10">
<div style="font-size: 10px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 30px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="font-size: 20px;">
<span></span><br><span></span><br><span></span>
</div>
<div style="column-span: all; background: orange;">
<span></span><br><span></span>
</div>
</div>
</div>

View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7660">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 300px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
}
.inner {
overflow: hidden;
inline-size: 100px;
block-size: 80px;
margin: 10px;
border: solid 5px;
padding: 10px;
font-size: 30px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-y="45"><span></span><br><span></span></div>
<div class="inner" data-offset-y="20">
<div>
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="55"><span></span><br><span></span></div>
<div class="inner" data-offset-y="20">
<div>
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="10"><span></span><br><span></span></div>
<div class="inner" data-offset-y="30">
<div style="margin-block-start: -200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="10"><span></span><br><span></span></div>
<div class="inner" data-offset-y="50">
<div style="margin-block-start: -200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="110"><span></span><br><span></span></div>
<div class="inner" data-offset-y="20">
<div style="margin-block-start: 200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="90"><span></span><br><span></span></div>
<div class="inner" data-offset-y="20">
<div style="margin-block-start: 200px;">
<span></span><br><span></span>
</div>
</div>
</div>

View file

@ -0,0 +1,91 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7660">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 300px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
writing-mode: vertical-rl;
}
.inner {
overflow: hidden;
inline-size: 100px;
block-size: 80px;
margin: 10px;
border: solid 5px;
padding: 10px;
font-size: 30px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="70"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div>
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="60"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div>
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="100"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div style="margin-block-start: -200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="120"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div style="margin-block-start: -200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="10"><span></span><br><span></span></div>
<div class="inner" data-offset-x="40">
<div style="margin-block-start: 200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="10"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div style="margin-block-start: 200px;">
<span></span><br><span></span>
</div>
</div>
</div>

View file

@ -0,0 +1,91 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7660">
<style>
.target {
display: flex;
position: relative;
line-height: 0;
font-size: 20px;
inline-size: 300px;
margin-block: 10px;
padding: 10px;
border: solid 3px;
writing-mode: vertical-lr;
}
.inner {
overflow: hidden;
inline-size: 100px;
block-size: 80px;
margin: 10px;
border: solid 5px;
padding: 10px;
font-size: 30px;
}
span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="40"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div>
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="50"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div>
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="10"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div style="margin-block-start: -200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="10"><span></span><br><span></span></div>
<div class="inner" data-offset-x="40">
<div style="margin-block-start: -200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-x="120"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div style="margin-block-start: 200px;">
<span></span><br><span></span>
</div>
</div>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="100"><span></span><br><span></span></div>
<div class="inner" data-offset-x="20">
<div style="margin-block-start: 200px;">
<span></span><br><span></span>
</div>
</div>
</div>

View file

@ -0,0 +1,95 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7655#issuecomment-1248528627">
<style>
.target {
display: flex;
position: relative;
}
.target > div, .target td {
background: hotpink;
font-size: 20px;
line-height: 0;
}
.target table { border-spacing: 0; }
.target td { padding: 5px; min-width: 5px; min-height: 5px; }
.target caption {
margin: 10px;
background: lime;
block-size: 20px;
}
.target span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-y="45"><span></span></div>
<table data-offset-y="0">
<caption>top</caption>
<tr style="vertical-align: baseline;">
<td style="font-size: 10px;"><span></span><br><span></span></td>
<td><span></span><br><span></span></td>
</tr>
<tr style="vertical-align: baseline;">
<td><span></span><br><span></span></td>
<td style="font-size: 10px;"><span></span><br><span></span></td>
</tr>
<caption style="caption-side: bottom;">bottom</caption>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="95"><span></span></div>
<table data-offset-y="0">
<caption>top</caption>
<tr style="vertical-align: baseline;">
<td style="font-size: 10px;"><span></span><br><span></span></td>
<td><span></span><br><span></span></td>
</tr>
<tr style="vertical-align: baseline;">
<td><span></span><br><span></span></td>
<td style="font-size: 10px;"><span></span><br><span></span></td>
</tr>
<caption style="caption-side: bottom;">bottom</caption>
</table>
</div>
<div class="target" style="align-items: first baseline;">
<div data-offset-y="20"><span></span></div>
<table data-offset-y="0">
<tr>
<td style="border: solid 10px;"></td>
<td style="border: solid 5px;"></td>
<td style="border: solid 20px;"></td>
</tr>
<tr>
<td style="border: solid 10px;"></td>
<td style="border: solid 5px;"></td>
<td style="border: solid 20px;"></td>
</tr>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-y="70"><span></span></div>
<table data-offset-y="0">
<tr>
<td style="border: solid 10px;"></td>
<td style="border: solid 5px;"></td>
<td style="border: solid 20px;"></td>
</tr>
<tr>
<td style="border: solid 10px;"></td>
<td style="border: solid 5px;"></td>
<td style="border: solid 20px;"></td>
</tr>
</table>
</div>

View file

@ -0,0 +1,64 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7655#issuecomment-1248528627">
<style>
.target {
display: flex;
position: relative;
writing-mode: vertical-rl;
}
.target > div, .target td {
background: hotpink;
font-size: 20px;
line-height: 0;
}
.target table { border-spacing: 0; }
.target td { padding: 5px; min-width: 5px; min-height: 5px; }
.target caption {
margin: 10px;
background: lime;
block-size: 20px;
}
.target span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="115"><span></span></div>
<table data-offset-x="0">
<caption>top</caption>
<tr style="vertical-align: baseline;">
<td style="font-size: 10px;"><span></span><br><span></span></td>
<td><span></span><br><span></span></td>
</tr>
<tr style="vertical-align: baseline;">
<td><span></span><br><span></span></td>
<td style="font-size: 10px;"><span></span><br><span></span></td>
</tr>
<caption style="caption-side: bottom;">bottom</caption>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="65"><span></span></div>
<table data-offset-x="0">
<caption>top</caption>
<tr style="vertical-align: baseline;">
<td style="font-size: 10px;"><span></span><br><span></span></td>
<td><span></span><br><span></span></td>
</tr>
<tr style="vertical-align: baseline;">
<td><span></span><br><span></span></td>
<td style="font-size: 10px;"><span></span><br><span></span></td>
</tr>
<caption style="caption-side: bottom;">bottom</caption>
</table>
</div>

View file

@ -0,0 +1,64 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7655#issuecomment-1248528627">
<style>
.target {
display: flex;
position: relative;
writing-mode: vertical-lr;
}
.target > div, .target td {
background: hotpink;
font-size: 20px;
line-height: 0;
}
.target table { border-spacing: 0; }
.target td { padding: 5px; min-width: 5px; min-height: 5px; }
.target caption {
margin: 10px;
background: lime;
block-size: 20px;
}
.target span {
display: inline-block;
width: 1em;
height: 1em;
outline: solid cyan 3px;
outline-offset: -3px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.target > *')">
<div class="target" style="align-items: first baseline;">
<div data-offset-x="45"><span></span></div>
<table data-offset-x="0">
<caption>top</caption>
<tr style="vertical-align: baseline;">
<td style="font-size: 10px;"><span></span><br><span></span></td>
<td><span></span><br><span></span></td>
</tr>
<tr style="vertical-align: baseline;">
<td><span></span><br><span></span></td>
<td style="font-size: 10px;"><span></span><br><span></span></td>
</tr>
<caption style="caption-side: bottom;">bottom</caption>
</table>
</div>
<div class="target" style="align-items: last baseline;">
<div data-offset-x="95"><span></span></div>
<table data-offset-x="0">
<caption>top</caption>
<tr style="vertical-align: baseline;">
<td style="font-size: 10px;"><span></span><br><span></span></td>
<td><span></span><br><span></span></td>
</tr>
<tr style="vertical-align: baseline;">
<td><span></span><br><span></span></td>
<td style="font-size: 10px;"><span></span><br><span></span></td>
</tr>
<caption style="caption-side: bottom;">bottom</caption>
</table>
</div>

View file

@ -0,0 +1,108 @@
<!DOCTYPE html>
<html>
<title>CSS Flexbox: box-sizing</title>
<link href="support/flexbox.css" rel="stylesheet">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-flow-property">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#box-sizing">
<meta name="assert" content="This test checks the interactions between the flex layout mode and the two possible values for the box-sizing property: border-box and content-box" />
<style>
.flexbox {
border: 2px solid orange;
}
.h3 {
height: 300px;
}
.w3 {
width: 300px;
}
.h4 {
height: 400px;
}
.w4 {
width: 400px;
}
.border-box, .flexbox > div {
box-sizing: border-box;
height: 100px;
width: 100px;
border: 2px solid lightblue;
border-top-width: 4px;
padding: 3px;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<body>
<div id=log></div>
All blue boxes are 100x100px with box-sizing: border-box and 2px border (4px border-top), we expect offsetWidth/Height to be <b>100x100</b>
<h3>flex-flow: default, orange box has width: 300px</h3>
<div class="flexbox" style="width: 300px">
<div></div><div></div><div></div>
</div>
<h3>flex-flow: default, orange box has width: 400px</h3>
<div class="flexbox" style="width: 400px">
<div></div><div></div><div></div>
</div>
<h3>flex-flow: default, orange box has width: auto</h3>
<div class="flexbox">
<div></div><div></div><div></div>
</div>
<h3>flex-flow: default, orange box has width: auto, flex-box has box-sizing: border-box</h3>
<div class="flexbox border-box">
<div data-expected-width=30></div>
<div data-expected-width=30></div>
<div data-expected-width=30></div>
</div>
<h3>flex-flow: column, red box has height: 300px</h3>
<div class="flexbox column" style="height: 300px">
<div></div><div></div><div></div>
</div>
<h3>flex-flow: column, red box has height: 400px</h3>
<div class="flexbox column" style="height: 400px">
<div></div><div></div><div></div>
</div>
<h3>flex-flow: column, red box has height: auto</h3>
<div class="flexbox column">
<div></div><div></div><div></div>
</div>
<h3>flex-box has box-sizing: border-box and flex-wrap: wrap;</h3>
<div class="flexbox column wrap" style="box-sizing: border-box; border: 2px solid lightblue; padding: 3px; height: 200px; width: 100px; position: relative" data-expected-width=100 data-expected-height=200>
<div data-offset-x=3></div><div data-offset-x=103></div><div data-offset-x=203></div>
</div>
<h3>flex-box has box-sizing: default and flex-wrap: wrap;</h3>
<div class="flexbox column wrap" style="border: 2px solid lightblue; padding: 3px; height: 200px; width: 100px; position: relative" data-expected-width=110 data-expected-height=210>
<div data-offset-x=3></div><div data-offset-x=3></div><div data-offset-x=103></div>
</div>
<h3>flex-flow: column, flex-box has box-sizing: border-box, flex items have flex: 1</h3>
<div class="flexbox column" style="box-sizing: border-box; border: 2px solid lightblue; padding: 3px; height: 343px; width: 100px;" data-expected-width=100 data-expected-height=343>
<div style="flex: 1;" data-expected-height=111></div>
<div style="flex: 1;" data-expected-height=111></div>
<div style="flex: 1;" data-expected-height=111></div>
</div>
<script>
function addExpectedSizes(flexItem) {
if (!flexItem.hasAttribute('data-expected-height'))
flexItem.setAttribute('data-expected-height', 100);
if (!flexItem.hasAttribute('data-expected-width'))
flexItem.setAttribute('data-expected-width', 100);
}
[].forEach.call(document.querySelectorAll(".flexbox > div"), addExpectedSizes);
[].forEach.call(document.querySelectorAll(".border-box"), addExpectedSizes);
checkLayout('.flexbox');
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<title>CSS Flexbox: minimum / maximum sizes with box-sizing: border-box</title>
<link href="support/flexbox.css" rel="stylesheet">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#box-model">
<link rel="help" href="https://drafts.csswg.org/css2/visudet.html#min-max-widths">
<meta name="assert" content="This test checks that a minimum and maximum sizes are correctly computed for flexbox children.">
<style>
.flexbox {
background-color: teal;
}
.flexbox > div {
box-sizing: border-box;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<body onload="checkLayout('.flexbox')">
<div id=log></div>
<div class="flexbox">
<div style="border: 5px solid orange; padding: 5px; max-width: 30px; width: 40px;" data-expected-width=30></div>
<div style="border: 5px solid orange; padding: 5px; min-width: 30px; width: 10px;" data-expected-width=30></div>
</div>
<div class="flexbox column">
<div style="border: 5px solid orange; padding: 5px; max-height: 30px; height: 40px;" data-expected-height=30></div>
<div style="border: 5px solid orange; padding: 5px; min-height: 30px; height: 10px;" data-expected-height=30></div>
</div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>Canvas size dynamic change in flexbox layout</title>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-items">
<meta name="assert" content="This test ensures proper layouting of canvas element as flex-items"/>
<link href="support/flexbox.css" rel="stylesheet">
<style>
.red {
width: 600px;
height: 400px;
background: red;
}
canvas {
background: green;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<div id=log></div>
<div class="red">
<div class="flexbox column">
<!-- The height=400 attribute makes the aspect ratio be 300x400. 300 from
the fallback width of replaced elements. 400 from the attribute.
After stretching to 600px wide, the height should be 800px. -->
<canvas id="canvas" data-expected-height="800"></canvas>
</div>
</div>
<script>
var canvas = document.getElementById('canvas');
requestAnimationFrame(function() {
canvas.height = 400;
checkLayout('.flexbox');
});
</script>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Flexbox: flex items inside flex-direction:column</title>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
<meta name="assert" content="This test ensures that when main axis is logical y, layout flex items before getting intrinsic size."/>
<link href="support/flexbox.css" rel="stylesheet">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/check-layout-th.js"></script>
<script>
function change() {
document.body.offsetTop;
var flex = document.getElementById("flex");
flex.style.width = "100px";
checkLayout("#container");
}
</script>
<body onload="change()">
<p>There should be a green square below. No red.</p>
<!-- #container is just here to make sure the test fails more reliably visually if the bug is present. -->
<div id="container" style="width:500px;">
<div id="flex" style="display:flex; flex-direction:column; width:70px;" data-expected-height="100">
<div style="background:red;" data-expected-height="100">
<div style="float:left; width:50px; height:100px; background:green;"></div>
<div style="float:left; width:50px; height:100px; background:green;"></div>
</div>
</div>
</div>
</body>

Some files were not shown because too many files have changed in this diff Show more