css - CSS Grid——行高的整数倍
问题描述
我正在深入研究 CSS 网格,但有一件事我无法理解:
我想要一个网格,n
列和每行的高度应该是给定 size 的整数倍m
,具体取决于单元格的内容。
考虑下面的例子,X
代表内容
1 2 3
+------+------+------+
| X | X | |<-m
- X - - -
| | | |
+------+------+------+
所以单元格 1/1 的内容略高于m
,所以整行应该是2 * m
高的,以此类推。
现在我在这里:
@mixin grid-container($cols: 6, $col-gap: 20px, $row-gap: 12px)
{
display: grid;
grid-template-columns: repeat($cols, 1fr);
grid-auto-rows: 6*$row-gap;
grid-column-gap: $col-gap;
grid-row-gap: $row-gap;
}
但这不尊重内容的高度,它会被堆叠。我该如何解决?
解决方案
内容会自动推高行的高度,因此不需要grid-auto-rows
. 类似的行为可以通过min-height
on columns 来实现。
以下示例显示了这一点。它使用了 css 变量和计算,您可以在此处阅读
- https://time2hack.com/2018/04/postcss-cssnext-turbocharge-css-development/
- https://time2hack.com/2018/03/postcss-css-preprocessor-in-javascript/
:root {
--row-gap: 12px;
--col-gap: 20px;
--col-count: 6;
}
.grid-container {
display: grid;
grid-template-columns: repeat(var(--col-count), 1fr);
grid-column-gap: var(--col-gap);
grid-row-gap: var(--row-gap);
}
.col {
border: 1px solid #eee;
padding: 5px;
box-sizing: border-box;
min-height: calc(var(--col-count) * var(--row-gap))
}
<div class="grid-container">
<div class="col">A<br/>B<br/>A<br/>B<br/>A<br/>B</div>
<div class="col">C</div>
<div class="col">D</div>
<div class="col">E</div>
<div class="col">F</div>
<div class="col">-</div>
<div class="col">A<br/>B</div>
<div class="col">C</div>
<div class="col">D</div>
<div class="col"></div>
<div class="col"></div>
<div class="col">T<br/>D</div>
</div>
推荐阅读
- python - 将 pyspark 数据框数组列中每个数组的值替换为其对应的 id
- python - 查找正则表达式模式而不考虑空格
- firebase - 编写 Cloud Firestore 安全规则
- image-processing - 处理语言中图像处理的卷积
- c# - 为什么消息框显示消息两次?
- python - Python处理3为什么有时当前工作目录不同?
- typescript - 如何在 TypeScript 中导出对象时将接口包装在对象中?
- elasticsearch - 在 X 次数据目录后配置滚动或删除,以防止“空间不足”错误
- javascript - 鼠标快速移动时鼠标光标在应用程序窗口外
- java - JMockit 验证是否调用了私有方法