[GRID] sử dụng grid xây dựng layout giống Masonry (ok)

https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
  <div class="container">
    <figure>
      <img src="https://assets.codepen.io/12005/windmill.jpg" alt="A windmill" />
      <figcaption><a href="#">1</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/suspension-bridge.jpg" alt="The Clifton Suspension Bridge" />
      <figcaption><a href="#">2</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/sunset.jpg" alt="Sunset and boats" />
      <figcaption><a href="#">3</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/snowy.jpg" alt="a river in the snow" />
      <figcaption><a href="#">4</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/bristol-balloons1.jpg" alt="a single checked balloon" />
      <figcaption><a href="#">5</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/dog-balloon.jpg" alt="a hot air balloon shaped like a dog" />
      <figcaption><a href="#">6</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/abq-balloons.jpg" alt="View from a hot air balloon of other balloons" />
      <figcaption><a href="#">7</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/disney-balloon.jpg" alt="a balloon fairground ride" />
      <figcaption><a href="#">8</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/bristol-harbor.jpg" alt="sunrise over a harbor" />
      <figcaption><a href="#">9</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/bristol-balloons2.jpg" alt="three hot air balloons in a blue sky" />
      <figcaption><a href="#">10</a></figcaption>
    </figure>
    <figure>
      <img src="https://assets.codepen.io/12005/toronto.jpg" alt="the Toronto light up sign at night" />
      <figcaption><a href="#">11</a></figcaption>
    </figure>
  </div>
  <style type="text/css">
  body {
    background-color: #000;
    font: 1.1em Arial, Helvetica, sans-serif;
  }
  img {
    max-width: 100%;
    display: block;
  }
  figure {
    margin: 0;
    display: grid;
    grid-template-rows: 1fr auto;
    margin-bottom: 10px;
    break-inside: avoid;
  }
  figure>img {
    grid-row: 1 / -1;
    grid-column: 1;
  }
  figure a {
    color: black;
    text-decoration: none;
  }
  figcaption {
    grid-row: 2;
    grid-column: 1;
    background-color: rgba(255, 255, 255, .5);
    padding: .2em .5em;
    justify-self: start;
  }
  .container {
    column-count: 4;
    column-gap: 10px;
  }
  </style>
</body>
</html>

Last updated