| <!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 axis fragmentation with column masonry layout</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 { |
| columns: 3; |
| column-fill: auto; |
| background: lightgrey; |
| margin-bottom: 15px; |
| } |
| |
| .grid { |
| display: grid; |
| grid: 20px auto 30px / auto; |
| border: solid; |
| border-width: 3px 1px 7px 5px; |
| padding: 1px 3px 5px 7px; |
| gap: 1px 5px; |
| } |
| |
| x { |
| background: cyan; |
| min-width: 20px; |
| min-height: 10px; |
| } |
| y { |
| background: blue; |
| width: 35px; |
| } |
| z { |
| background: gray; |
| width: 40px; |
| } |
| masonry-track { |
| display: grid; |
| justify-content: space-between; |
| column-gap: 5px; |
| } |
| </style> |
| </head> |
| <body> |
| <wrapper style="display:none"> |
| <div class="columns" style="height:90px"> |
| <div class="grid"> |
| <masonry-track><x></x><y></y><y></y><x></x></masonry-track> |
| <masonry-track><x></x><x></x><x></x><z></z></masonry-track> |
| <masonry-track><z></z><z></z><x></x><z></z></masonry-track> |
| </div> |
| </div> |
| <div class="columns" style="height:68px"> |
| <div class="grid"> |
| <masonry-track><x></x><y></y><y></y><x></x></masonry-track> |
| <masonry-track><x></x><x></x><x></x><z></z></masonry-track> |
| <masonry-track><z></z><z></z><x></x><z></z></masonry-track> |
| </div> |
| </div> |
| <div class="columns" style="height:48px"> |
| <div class="grid"> |
| <masonry-track><x></x><y></y><y></y><x></x></masonry-track> |
| <masonry-track><x></x><x></x><x></x><z></z></masonry-track> |
| <masonry-track><z></z><z></z><x></x><z></z></masonry-track> |
| </div> |
| </div> |
| <div class="columns" style="height:38px"> |
| <div class="grid"> |
| <masonry-track><x></x><y></y><y></y><x></x></masonry-track> |
| <masonry-track><x></x><x></x><x></x><z></z></masonry-track> |
| <masonry-track><z></z><z></z><x></x><z></z></masonry-track> |
| </div> |
| </div> |
| <div class="columns" style="height:28px"> |
| <div class="grid"> |
| <masonry-track><x></x><y></y><y></y><x></x></masonry-track> |
| <masonry-track><x></x><x></x><x></x><z></z></masonry-track> |
| <masonry-track><z></z><z></z><x></x><z></z></masonry-track> |
| </div> |
| </div> |
| <div class="columns" style="height:18px"> |
| <div class="grid"> |
| <masonry-track><x></x><y></y><y></y><x></x></masonry-track> |
| <masonry-track><x></x><x></x><x></x><z></z></masonry-track> |
| <masonry-track><z></z><z></z><x></x><z></z></masonry-track> |
| </div> |
| </div> |
| </wrapper> |
| |
| <script> |
| let wrapper = document.querySelectorAll("wrapper")[0]; |
| let grids = document.querySelectorAll(".grid"); |
| for (let e of grids) { |
| for (let track of e.children) { |
| track.style.gridTemplateColumns = "repeat(" + track.children.length + ",auto)"; |
| } |
| } |
| wrapper.style.display=""; |
| </script> |
| </body> |
| </html> |