【发布时间】:2021-03-11 04:47:49
【问题描述】:
我需要创建一个响应式正方形网格。我的网格在它的父级内部,它也是响应式的。我希望我的网格完全适合其父级。我不知道如何实现它,仍然使用方形单元格。
我知道使用padding-bottom: 100% 使元素呈方形的技巧,但我不确定如何在此处应用它。另外,我不能只计算单元格的百分比,因为单元格的数量会发生变化。
这是我所拥有的:
.container {
width: 400px;
height: 300px;
background: #ff8;
border: 5px solid blue;
}
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
.grid > * {
background-color: orange;
}
.grid > *::before {
content: '';
display: block;
padding-top: 100%;
}
<div class="container">
<div class="grid">
<div></div> <div></div> <div></div> <div></div>
<div></div> <div></div> <div></div> <div></div>
</div>
</div>
以下图片可以更好地描述我的目标:
还能做到吗?
【问题讨论】:
-
看来你已经做到了,不是吗?我只看到缺少垂直对齐
-
@TemaniAfif 不,我对单元格的宽度和高度进行了硬编码以制作屏幕截图:) 图片反映了我的目标,附加的代码不会产生这种效果。
-
@TemaniAfif 你知道怎么做吗?
-
抱歉,我不清楚您的问题。
-
@TemaniAfif 怎么来的?我只需要将正方形网格(网格不换行)适合特定大小的父级。我认为这并不像听起来那么简单,或者我错过了一些东西。这是一个 React 应用程序,所以我的网格需要在水平和垂直方向上正确缩放任意数量的正方形,以及任意大小的父级。单元格必须是正方形。
标签: css responsive-design css-grid