【发布时间】:2023-03-25 21:41:01
【问题描述】:
我正在尝试创建一个带有垂直标题且没有明确调整高度大小的表格,目前仅使用 HTML 和 CSS 是否可行?
我避免使用任何 JS,因为这个 HTML 是使用 Thymleaf 和 Spring 进行模板化的。我避免显式调整高度,因为这将设置多个具有不同标题的表格的样式,因此它们将具有不同的高度 - 否则它们上方会浪费空间,或者它们会被部分截断。
Link 给我的 codepen 一个简单的例子来说明我想要实现的目标。我希望第二个标题不与下面的行重叠,并希望整个标题的高度扩大以适应它。
可以在上面的 codepen 链接中找到代码:
<table>
<thead>
<tr>
<th>First Heading</th>
<th class="vertical">Second Heading</th>
</tr>
</thead>
<tbody>
<tr>
<td>Typical cell</td>
<td>Typical cell</td>
</tr>
<tr>
<td>Typical Cell cell</td>
<td>Typical Cell</td>
</tr>
</tbody>
</table>
.vertical {
transform: rotate(-90deg);
}
编辑:这已被标记为重复,但链接的问题没有提到高度是一个问题,答案包括一个实际上现在已弃用的 CSS 属性。所以我认为这个问题足够不同,不应被视为重复。
【问题讨论】:
-
如果你为你的垂直类设置一个高度,你会解决它(高度:120px;)。另外,我建议您将第一个标题固定到底部(垂直对齐:底部;)
-
@gengns 正如我在问题的第一句中提到的那样,我想这样做
"without explicit sizing for height",尽管我可以更清楚地说明原因 - 这是因为这将设置多个包含标题的表格的样式具有不同的内容,因此它们需要具有不同的高度,否则会浪费空间或标题部分被截断。 -
为什么不设置最小和最大高度?如果您使用长标题,我建议您在此处查看 MDN“浏览器兼容性表”方法,例如 developer.mozilla.org/en-US/docs/Web/CSS/grid(在底部)。如果你想要不同的方向,长度可以变化很大并且不想有很大的空白,你可以使用 CSS Grid。
-
@gengns 我已经检查过了,遗憾的是 MDN 使用了明确的高度,可能是因为标题是一致的,所以他们可以专门设置标题高度。我不确定网格在这里有什么帮助?