html - 构建具有重复行和稀疏标题的 CSS 网格布局
问题描述
我正在尝试使用 CSS 网格进行布局,但无法弄清楚如何做到这一点。这是布局的草图:
(empty) | (empty) | label | (empty)
---------------------------------------------
col1 | col2 | col3 | col4
我遇到的问题是我想根据需要重复第二行多次。
理想情况下,我还希望能够将子元素放入网格容器中,并让它们流入正确的位置,而无需指定grid-area
它们。
也就是说,理想情况下,我可以使用以下标记生成此布局:
<div class="grid-container">
<div>label</div>
<div>col1</div>
<div>col2</div>
<div>col3</div>
<div>col4</div>
</div>
我已经看了一个小时左右的网格文档,似乎无法理解如何做到这一点。有小费吗?
解决方案
grid-area: 1 / 3 / 2 / 4;
用于我们的div.label
。不得不为其添加一个类。1 / 3 / 2 / 4
表示grid-row-start / grid-column-start / grid-row-end / grid-column-end。基本上我们把.label
它放在第一行的第三列。更多信息在这里https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area- 我们虽然可以
::before
使用grid-area: 1 / 1 / 2 / 5;
. 像第一个元素一样grid
对待。::before
- 用于将
z-index
一个元素设置在另一个元素之上。z-index
以某种特定的方式为grid
儿童工作。更多在这里https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout(重叠内容的控制)
grid-area
如您所见,其他子元素无需特定设置即可工作。
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: minmax(20px, auto);
grid-column-gap: 1px;
grid-row-gap: 1px;
}
.grid-container::before {
content: '';
grid-area: 1 / 1 / 2 / 5;
z-index: 1;
background: cyan;
}
.grid-container .label {
grid-area: 1 / 3 / 2 / 4;
z-index: 2;
}
<div class="grid-container">
<div class="label">label</div>
<div>col1</div>
<div>col2</div>
<div>col3</div>
<div>col4</div>
<div>col1</div>
<div>col2</div>
<div>col3</div>
<div>col4</div>
</div>
推荐阅读
- r - 将矩阵循环到R中的矩阵
- c# - Amazon polly tts SSML 标签
- mysql - MySQL 更新不适用于 WHERE 子句
- bigbluebutton - 如何为 Xirsys TURN 服务器配置 Big Blue Button?
- swift - @ObservedObject ViewModel 和 @EnvironmentObject 在同一个视图中导致计时器问题
- javascript - element.getBoundingClientRect() 在具有网格显示的父项中返回错误值
- vb.net - 如何在 Docusing 信封中添加名称字段?
- r - 根据列中的值绘制多个图
- database - 是否可以在 docker 托管的 redis 数据库上加载带有配置文件的数据库方案?
- office-js - 如何在 Office 加载项中保存文件系统文件