1

我有一个固定大小的容器,其中将添加和删除项目,所以我希望将项目调整为尽可能大(同样,并保持纵横比)以尽可能多地填充容器但是不会溢出容器。

我发现这个解决方案似乎非常适合以最佳方式按行和列组织项目,但它基于固定大小的项目。我基本上想要这个,它也将缩放高度宽度以尽可能多地填充容器并在溢出时/之前停止。 创建一个按列流动的 CSS 网格,具有基于内容的动态列和行

#container {
  border:3px solid orange;
  width:250px;
  height:250px;
}

#grid {
  border: 1px solid red;
  column-width: 50px;
  column-gap: 0px;
}

#grid > div {
  break-inside: avoid-column; /* Prevent element from breaking */
  page-break-inside: avoid; /* Prevent element from breaking in Firefox */
  background: gray;
  border:1px solid blue;
}

<div id="container">
  <div id="grid">
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
    <div><img src="https://www.w3schools.com/tags/smiley.gif" alt="Smiley face" style="object-fit: cover;"></div>
  </div>
</div>

我开始这个小提琴是为了提供更多的背景信息。基本上我的项目最终将成为带有背景图像的 div(原因纵横比很重要),我将在图像上放置一些文本。

https://jsfiddle.net/sjdx83v9/1/

4

0 回答 0