【发布时间】:2018-03-28 21:58:56
【问题描述】:
在我相对简单的网格中,我正在尝试设置“不合格”的单元格/网格线(缺乏更好的措辞)。
HTML:
<table>
<tr>
<td class="a"></td>
<td class="b"></td>
<td class="c"></td>
<td class="d">Text</td>
<td class="e"></td>
<td class="f">
<button>Btn</button>
</td>
</tr>
</table>
CSS 网格:
table {
width: 100%;
}
tr {
text-align: center;
display: grid;
height: 200px;
grid-template-columns: 25% 25% 25% 25% 1fr;
grid-template-rows: 70% 30%;
}
.a {
grid-row: 1;
background: green;
}
.b {
grid-row: 1;
background: blue;
}
.c {
grid-row: 1;
background: red;
}
.d {
grid-row: 1;
background: darkmagenta;
}
.e {
grid-column: 1 / span 3;
background: gray;
}
.f {
grid-column: 4;
background: purple;
}
https://jsfiddle.net/zp1s3ca5/
这给了我:
但是,我需要让单元格d 的高度更少,而单元格f 的高度更多。
像这样:
我似乎无法“打破”行线。我该怎么做?
PS:我考虑过行跨单元格d + f,并在该单元格中设置另一个网格。问题是,我需要重新排列移动视图上的单元格(单元格 d 位于顶部,单元格 f 位于底部),所以我看不出它是如何工作的。
【问题讨论】:
-
HTML 表格不应使用 display: grid 来实现。如果您能想出一个更适合网格布局的 HTML 结构,您可以简单地将洋红色-紫色区域设置为跨越两行的单个网格项,并具有独立于网格的自己的块或 flex 布局。
-
我可能应该澄清一下:出于 js 排序的原因,我需要将
设为网格 - 同时每个“列表”只允许一个
。
标签: html css grid-layout css-grid