有没有办法在标题和正文之间自动保持同步表结构的行高?我的意思是强制 CSS Grid 保持每个标题和数据行具有相同的高度,尽管它们有不同的父级?我不希望标题和正文在 HTML 中共享同一列。我想要两个主要列:标题和正文。
此外,行数和正文列数是动态的。目标是创建比较表,其中标题代表产品特征名称,正文列代表产品特征值。此外,表格主体将另外被包裹<div>
以引入滑块功能。
AFAIK CSS Subgrid 理论上可以做到这一点,但它仅在 Firefox 中是实验性的
下面是CodePen 上可用的简化输入代码。我希望“标题 1”、“数据 1.1”、“数据 2.1”单元格具有相同的高度。更高的行也是如此,例如“标题 2 | 更高的标题 2 | 更高的标题 2”、“数据 1.2”、“数据 2.2” - 所有单元格都应具有相同的高度。
.table {
display: grid;
grid-template-columns: 1fr 2fr;
}
.table__headers,
.table__body {
border: 1px solid black;
}
.table__body {
display: grid;
grid-template-columns: 1fr 1fr;
border: 1px solid blue;
margin: 5px;
padding: 5px;
}
.cell {
border: 1px solid red;
}
<div class="table">
<div class="table__headers">
<div class="cell">Header 1</div>
<div class="cell">
Header 2
<br>
higher header 2
<br>
yet higher header 2
</div>
<div class="cell">
Header 3
<br>
higher header 3
</div>
<div class="cell">Header 4</div>
</div>
<div class="table__body">
<div class="table__body-inside">
<div class="cell">Data 1.1</div>
<div class="cell">Data 1.2</div>
<div class="cell">Data 1.3</div>
<div class="cell">Data 1.4</div>
</div>
<div class="table__body-inside">
<div class="cell">Data 2.1</div>
<div class="cell">Data 2.2</div>
<div class="cell">Data 2.3</div>
<div class="cell">Data 2.4</div>
</div>
</divc>
</div>
简而言之:可视行中的最高单元格(因为从技术上讲,标题和正文在不同的列中,而不是 HTML 中的同一行)应该决定整行的高度。