【发布时间】:2018-02-08 18:21:24
【问题描述】:
我想创建一个等正方形的网格。我一直在研究 CSS Grid,因为我认为可以在网格中创建相等的宽度和高度区域。但我在 Grid 规范中没有看到任何关于它的内容。基本代码是这样的:
.squaregrid {
max-width: 600px;
margin: 20px;
display: grid;
grid-template: repeat(3, 1fr) / repeat(3, 1fr);
grid-gap: 10px;
}
.cell {
background: #ddd;
font-size: 2em;
}
<div class="squaregrid">
<div class="cell">A</div>
<div class="cell">B</div>
<div class="cell">C</div>
<div class="cell">D</div>
<div class="cell">E</div>
<div class="cell">F</div>
<div class="cell">G</div>
<div class="cell">H</div>
<div class="cell">I</div>
</div>
我得到一个 3x3 的网格,但每个“单元格”的高度只是字母的大小(因为 fr 单位使行的高度相对于彼此,而不是相对于列宽)。
我可以使用固定大小而不是 1fr,但它当然没有响应。
我知道 padding-bottom 用于保持纵横比的技巧,但这涉及每个单元格的多个包装器,另外,如果我这样做,实际上不需要使用 Grid,我可以使用常规 div 或 flexbox。
还有其他解决方案吗?
回答“重复”问题并不能解决问题。
【问题讨论】:
-
你完全反对JS吗?以这种方式完成会很简单......
-
最新消息:cssence.com/code/… 无论您选择哪种方法,都需要一个包装器元素。
标签: css responsive-design css-grid