Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: unsized div</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-001-ref.html">
<meta name="assert" content="contain-intrinsic-size is used to size the div as if it had a single child of this size">

<style>
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 111px 222px;
contain: size;
}
</style>

<div id=target></div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: div with max-content parent</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-002-ref.html">
<meta name="assert" content="contain-intrinsic-size is used to size the div, with parent's max-content width respecting it">

<style>
#border {
width: max-content;
border: 1px solid black;
}
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 111px 222px;
contain: size;
}
</style>

<div id=border>
<div id=target></div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: width specified</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-003-ref.html">
<meta name="assert" content="contain-intrinsic-size's width is ignored if width is specified">

<style>
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 111px 222px;
contain: size;
width: 50px;
}
</style>

<div id=target></div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: width is min-content</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-004-ref.html">
<meta name="assert" content="div is sized to intrinsic-width if width is min-content">

<style>
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 111px 222px;
contain: size;
width: min-content;
}
</style>

<div id=target></div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: width is max-content</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-005-ref.html">
<meta name="assert" content="div is sized to intrinsic-width if width is max-content">

<style>
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 111px 222px;
contain: size;
width: max-content;
}
</style>

<div id=target></div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: unsized div, intrinsic-size is small</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-006-ref.html">
<meta name="assert" content="content dimensions are ignored if intrinsic-size is specified">

<style>
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 5px 6px;
contain: size;
}
</style>

<div id=target>Lorem ipsum</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: div with border</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-007-ref.html">
<meta name="assert" content="contain-intrinsic-size sizes the content box, not the border box">

<style>
#border {
border: 1px solid blue;
width: max-content;
}

#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 55px 66px;
contain: size;
border-style: solid;
border-color: black;
border-width: 2px 3px 5px 7px;
}
</style>

<div id=border>
<div id=target></div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: writing modes</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-008-ref.html">
<meta name="assert" content="contain-intrinsic-size specifies physical dimensions, and respects writing modes">

<style>
.border {
border: 1px solid blue;
width: max-content;
margin: 5px;
}

.box {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 55px 66px;
contain: size;
border-style: solid;
border-color: black;
border-width: 2px 3px 5px 7px;
padding: 11px 13px 17px 19px;
}
.verticalrl {
writing-mode: vertical-rl;
}
.verticallr {
writing-mode: vertical-lr;
}
.horizontaltb {
writing-mode: horizontal-tb;
}
</style>

<div class=border><div class="box verticalrl">Lorem</div></div>
<div class=border><div class="box verticallr">Ipsum</div></div>
<div class=border><div class="box horizontaltb">Dolor</div></div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS contain-intrinsic-size: select multiple</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<meta name="assert" content="contain-intrinsic-size sizes select multiple">

<style>
.cis-both {
contain-intrinsic-size: 55px 66px;
}

.cis-width {
contain-intrinsic-size: 55px none;
}

.cis-height {
contain-intrinsic-size: none 66px;
}

select {
padding: 0;
}

.test {
display: grid-lanes;
contain: size;
background: lightblue;
border: 1px solid blue;
margin: 5px;
}
</style>

<!-- To measure the size of an empty <select> without size containment -->
<select id="reference" multiple size="2"></select>

<select multiple class="test cis-both"
data-expected-client-width="55" data-expected-client-height="66"></select>
<select multiple class="test cis-width"
data-expected-client-width="55"></select>
<select multiple class="test cis-height"
data-expected-client-height="66"></select>

<select multiple size="2" class="test cis-width"
data-expected-client-width="55"></select>
<select multiple size="2" class="test cis-height"
data-expected-client-height="66"></select>

<select multiple size="10" class="test cis-width"
data-expected-client-width="55"></select>
<select multiple size="10" class="test cis-height"
data-expected-client-height="66"></select>

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
const reference = document.getElementById("reference");
const normalWidth = reference.clientWidth;
for (let test of document.querySelectorAll(".test.cis-width")) {
reference.size = test.size || 4;
test.dataset.expectedClientHeight = reference.clientHeight;
}
for (let test of document.querySelectorAll(".test.cis-height")) {
test.dataset.expectedClientWidth = normalWidth;
}

checkLayout('.test');
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: replaced content</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-012-ref.html">
<meta name="assert" content="contain-intrinsic-size overrides replaced content's intrinsic dimensions">

<style>
#target {
display: grid-lanes;
contain-intrinsic-size: 100px 200px;
contain: size;
}
</style>

<img id=target src="../../../../css-sizing/contain-intrinsic-size/resources/dice.png"></img>
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!doctype html>
<html class="reftest-wait">
<meta charset="utf8">
<title>CSS contain-intrinsic-size: intrinsic-size changes.</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-013-ref.html">
<meta name="assert" content="changes in intrinsic-size cause reflow">
<script src="/common/reftest-wait.js"></script>

<style>
#border {
width: max-content;
border: 1px solid black;
}
#border > div {
display: grid-lanes;
contain-intrinsic-size: 55px 66px;
contain: size;
}
</style>

<div id=border><div id=target></div></div>

<script>
function changeStyle() {
document.getElementById("target").style = "contain-intrinsic-size: 77px 88px;";
requestAnimationFrame(takeScreenshot);
}

onload = () => requestAnimationFrame(() => requestAnimationFrame(changeStyle));

</script>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: sized div</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-018-ref.html">
<meta name="assert" content="width / height ignore intrinsic-size">

<style>
#target {
display: grid-lanes;
background: lightblue;
width: 55px;
height: 66px;
contain-intrinsic-size: 111px 222px;
contain: size;
}
</style>

<div id=target></div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!doctype html>
<meta charset="utf8">
<title>CSS contain-intrinsic-size: div with fit-content width</title>
<link rel="author" title="Celeste Pan" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3">
<link rel="match" href="../../../../css-sizing/contain-intrinsic-size/contain-intrinsic-size-019-ref.html">
<meta name="assert" content="div is sized to intrinsic-width when width is fit-content">

<style>
#target {
display: grid-lanes;
background: lightblue;
contain-intrinsic-size: 111px 222px;
contain: size;
width: fit-content;
}
</style>

<div id=target></div>
Loading