<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Test: 'contain: layout' should make elements behave as if they have no baseline</title>
<link rel="author" title="Daniel Holbert" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#valdef-align-items-baseline">
<link rel="match" href="contain-layout-suppress-baseline-001-ref.html">
<style>
.flexBaselineCheck {
display: flex;
border: 1px solid black;
height: 100px;
}
.flexBaselineCheck > * {
contain: layout;
border: 2px solid teal;
align-self: baseline;
}
canvas {
background: purple;
width: 20px;
height: 80px;
box-sizing: border-box;
}
.flex {
display: flex;
}
.grid {
display: grid;
}
.multicol {
column-count: 2;
}
</style>
</head>
<body>
<div class="flexBaselineCheck">
<!-- This canvas just exists to establish a precise, far-down baseline
alignment position: -->
<canvas></canvas>
<!-- "contain:layout" should force all the elements below to behave as if
they have no baseline. That means they all should *synthesize* a
baseline from their border-box edge, in order to participate in flex
item baseline alignment (to honor the outer flex container's
"align-items:baseline"). So, the expectation here is that all of these
elements' border-bottom edges should be aligned. -->
<div>block</div>
<fieldset><legend>leg</legend>fieldset</fieldset>
<div class="flex">flex</div>
<div class="grid">grid</div>
<div class="multicol">multi<br>col</div>
<details open><summary>summary</summary>details</details>
</div>
</body>
</html>