有没有办法让CSS网格在图像达到最大宽度时自动添加列?

问题描述 投票:0回答:1

我有一个网格。每个单元格都是一个具有最大宽度的图像(在 ex 中使用简单的彩色 div)。有没有办法让网格在图像达到最大宽度时自动添加另一列,而不是仅仅增加它们之间的间隙。 (与缩小到最小宽度时删除列相同)。这是示例代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <style>
      .pet-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
        width: 100vw;
      }

      .pet {
        aspect-ratio: 1/1;
        background-color: cadetblue;
        max-width: 205px;
      }
    </style>
  </head>

  <body>
    <header></header>

    <main>
      <div class="pet-grid">
        <div class="pet"></div>
        <div class="pet"></div>
        <div class="pet"></div>
        <div class="pet"></div>
        <div class="pet"></div>
        <div class="pet"></div>
        <div class="pet"></div>
        <div class="pet"></div>
      </div>
    </main>

    <footer></footer>
  </body>
</html>
html css css-grid
1个回答
0
投票

grid-template-columns
auto-fill
auto-fit

一起使用

.pet-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, 250px);
  gap: 10px;
  width: 100vw;
}

.pet {
  aspect-ratio: 1/1;
  background-color: cadetblue;
}
<main>
  <div class="pet-grid">
    <div class="pet"></div>
    <div class="pet"></div>
    <div class="pet"></div>
    <div class="pet"></div>
    <div class="pet"></div>
    <div class="pet"></div>
    <div class="pet"></div>
    <div class="pet"></div>
  </div>
</main>

© www.soinside.com 2019 - 2024. All rights reserved.