wpt / css / css-break / grid / grid-lanes / grid-lanes-fragmentation-001.html

Status: FAIL | Duration: 29ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi

/css/css-break/grid/grid-lanes/grid-lanes-fragmentation-001.html

<!DOCTYPE HTML>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
  <meta charset="utf-8">
  <title>CSS Grid Test: Grid Lanes layout fragmentation</title>
  <link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
  <link rel="help" href="https://drafts.csswg.org/css-grid-3">
  <link rel="match" href="grid-lanes-fragmentation-001-ref.html">
  <style>
html,body {
  color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
wrapper {
  display: block;
  width: 600px;
  height: 600px;
  overflow: hidden;
}
.columns {
  width: 330px;
  columns: 6;
  column-fill: auto;
  column-gap: 1px;
  background-color: rgba(80,80,80,.2);
  margin-bottom: 10px;
}
.columns:nth-child(2n) {
  background-color: rgba(10,100,10,.5);
}
.grid {
  display: grid-lanes;
  grid-template-columns: 10px 15px 20px;
  border: 1px solid;
  gap: 2px;
}
x {
  background: cyan;
  height: 5px;
  break-inside: avoid;
}
x:nth-child(4n) {
  background: blue;
  height: 10px;
  break-inside: auto;
}
x:nth-child(5n) {
  background: pink;
  height: 12px;
  break-inside: avoid;
}
</style></head>
<body>
<wrapper style="display:none">
<div style="display:none">
<div class="columns">
  <div class="grid">
    <x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x>
    <x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x><x></x>
  </div>
</div>
</div>
<script>
let wrapper = document.querySelectorAll("wrapper")[0];
let tmplt = document.querySelectorAll(".columns")[0];
let heights = [ 78, 68, 58, 48, 38, 28, 18, 12, 11, 8 ];
for (let h of heights) {
  let e = tmplt.cloneNode(true);
  e.style.height = h + "px";
  wrapper.appendChild(e);
}
wrapper.style.display="";
</script>
</wrapper>
</body>
</html>

/css/css-break/grid/grid-lanes/grid-lanes-fragmentation-001-ref.html

<!DOCTYPE HTML>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
  <meta charset="utf-8">
  <title>Reference: Grid Lanes layout fragmentation</title>
  <link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
  <style>
html,body {
  color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
wrapper {
  display: block;
  width: 600px;
  height: 600px;
  overflow: hidden;
}
.columns {
  width: 330px;
  columns: 6;
  column-fill: auto;
  column-gap: 1px;
  background-color: rgba(80,80,80,.2);
  margin-bottom: 10px;
}
.columns:nth-child(2n) {
  background-color: rgba(10,100,10,.5);
}
.grid {
  display: flow-root;
  border: 1px solid;
  gap: 2px;
}
.first { border-bottom-width:0; height:calc(100% - 1px); }
.middle { border-top-width:0; border-bottom-width:0; height:100%; }
.last { border-top-width:0; }
x {
  background: cyan;
  height: 5px;
}
y {
  background: blue;
  height: 10px;
}
z {
  background: pink;
  height: 12px;
}
grid-lanes-track {
  float: left;
  height: 100%;
  gap: 2px;
}
x,y,z,grid-lanes-track { display: block; }
grid-lanes-track > * { margin-bottom:2px; }
.last > grid-lanes-track > :last-child { margin-bottom:0; }
grid-lanes-track:nth-child(1) { width: 10px; }
grid-lanes-track:nth-child(2) { width: 15px; margin-left:2px; }
grid-lanes-track:nth-child(3) { width: 20px; margin-left:2px; }
</style></head>
<body>
<wrapper>
<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y><y></y><y></y><x></x><x></x><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><z></z><x></x><x></x><x></x><z></z><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><z></z><x></x><y></y><x></x><x></x><y style="height:9px"></y></grid-lanes-track>
  </div>
  <div class="grid last" style="height:1px">
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track><y style="height:1px"></y></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y><y></y><y></y><x></x><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><z></z><x></x><x></x><x></x><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><z></z><x></x><y></y><x></x><x></x></grid-lanes-track>
  </div>
  <div class="grid last" style="height:12px">
    <grid-lanes-track><z></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><y></y></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y><y></y><y></y><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><z></z><x></x><x></x><x></x><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><z></z><x></x><y></y></grid-lanes-track>
  </div>
  <div class="grid last" style="height:24px">
    <grid-lanes-track><x></x><x></x><y></y></grid-lanes-track>
    <grid-lanes-track><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y><y></y><y></y></grid-lanes-track>
    <grid-lanes-track><x></x><z></z><x></x><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><z></z><x></x><y style="height:5px;"></y></grid-lanes-track>
  </div>
  <div class="grid last" style="height:31px">
    <grid-lanes-track><z></z><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><y style="height:5px"></y><x></x><x></x><y></y></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y><y></y><y style="height:6px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x><z></z><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><z></z></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:4px;"></y><z></z><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><y></y><x></x><x></x><y style="height:5px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x><x></x><x></x></grid-lanes-track>
  </div>
  <div class="grid last" style="height:5px">
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track><y style="height:5px;"></y></grid-lanes-track>
    <grid-lanes-track></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y><y style="height:8px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x><z></z><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:2px;"></y><y></y><y></y></grid-lanes-track>
    <grid-lanes-track><z></z><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><z></z></grid-lanes-track>
  </div>
  <div class="grid last" style="height:24px">
    <grid-lanes-track><x></x><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><y></y></grid-lanes-track>
    <grid-lanes-track><z></z></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><y style="height:4px;"></y></grid-lanes-track>
    <grid-lanes-track><y></y></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z></z></grid-lanes-track>
    <grid-lanes-track><y style="height:6px;"></y><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><x></x><y style="height:4px;"></y></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><y style="height:6px;"></y><x></x></grid-lanes-track>
  </div>
  <div class="grid last">
    <grid-lanes-track><z></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><y></y></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y style="height:4px;"></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:6px;"></y><y style="height:4px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:12px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:6px;"></y><y style="height:4px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><z style="height:12px;"></z></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:6px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><y style="height:5px;"></y></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:12px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><y style="height:5px;"></y><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:12px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><y style="height:5px;"></y></grid-lanes-track>
  </div>
  <div class="grid last" style="height:5px;">
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track><y style="height:5px;"></y></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x><y style="height:3px;"></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:7px;"></y><y style="height:3px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:11px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:8px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:1px;"></z><x></x><y style="height:1px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:11px;"></z></grid-lanes-track>
    <grid-lanes-track><y style="height:9px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:1px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x><y style="height:4px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:11px;"></z></grid-lanes-track>
    <grid-lanes-track><y style="height:6px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:1px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:11px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><y style="height:4px;"></y></grid-lanes-track>
  </div>
  <div class="grid last" style="height:6px;">
    <grid-lanes-track><z style="height:1px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><y style="height:6px;"></y></grid-lanes-track>
  </div>
</div>

<div class="columns">
  <div class="grid first">
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:8px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:8px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:2px;"></y><y style="height:4px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:4px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:6px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><z style="height:8px;"></z></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><y style="height:8px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:4px;"></z></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><x></x><y style="height:1px;"></y></grid-lanes-track>
    <grid-lanes-track><y style="height:2px;"></y></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:8px;"></y></grid-lanes-track>
    <grid-lanes-track><z style="height:8px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><y style="height:1px;"></y><x></x></grid-lanes-track>
    <grid-lanes-track><z style="height:4px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:8px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><x></x><y style="height:1px;"></y></grid-lanes-track>
  </div>
  <div class="grid middle">
    <grid-lanes-track><z style="height:4px;"></z></grid-lanes-track>
    <grid-lanes-track><x></x></grid-lanes-track>
    <grid-lanes-track><y style="height:8px;"></y></grid-lanes-track>
  </div>
  <div class="grid last" style="height:1px;">
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track></grid-lanes-track>
    <grid-lanes-track><y style="height:1px;"></y></grid-lanes-track>
  </div>
</div>
<script>
let elts = document.querySelectorAll(".columns");
let heights = [ 78, 68, 58, 48, 38, 28, 18, 12, 11, 8 ];
for (let i = 0; i < heights.length; ++i) {
  elts[i].style.height = heights[i] + "px";
}
</script>
</wrapper>
</body>
</html>