html - 带有合并行的稍微复杂的 HTML 表格
问题描述
我有下表:
通讯层 | 实施者 |
---|---|
应用 | 应用 |
运输 | 操作系统 |
互联网 | 操作系统 |
关联 | 操作系统 |
关联 | 硬件 |
<table>
<thead>
<tr>
<th>Comm Layer</th>
<th>Implemented By</th>
</tr>
</thead>
<tbody>
<tr>
<td>Application</td>
<td>Application</td>
</tr>
<tr>
<td>Transport</td>
<td>OS</td>
</tr>
<tr>
<td>Internet</td>
<td>OS</td>
</tr>
<tr>
<td>Link</td>
<td>OS</td>
</tr>
<tr>
<td>Link</td>
<td>Hardware</td>
</tr>
</tbody>
</table>
我想合并两个显示“链接”的单元格和三个显示“操作系统”的单元格。我尝试rowspan
以多种方式使用该属性,但无济于事。我能够合并两个“链接”单元格或三个“操作系统”单元格,但不能同时合并两者。
解决方案
简而言之:您不能<tr>
让所有单元格都参与其中,rowspan=""
因为这会创建一个高度为零的行(因为没有特定于行的内容)。我觉得这是 HTML 的设计缺陷。
一种解决方法是拥有一个始终包含非rowspan=""
单元格的零宽度列(由 支撑
,但隐藏(使用visibility: hidden;
,不是display: none;
):
(出于说明目的,我发布的代码将删除的单元格注释掉<!--<td>OS</td>-->
,显然您可以在最终版本中删除这些单元格)
table {
border: 1px solid #999;
border-collapse: collapse;
}
th, td {
border: 1px solid #999;
}
tr > *:nth-child(1) { visibility: hidden; }
<table>
<thead>
<tr>
<th> </th>
<th>Comm Layer</th>
<th>Jurisdiction</th>
</tr>
</thead>
<tbody>
<tr>
<td> </td>
<td>Application</td>
<td>Application</td>
</tr>
<tr>
<td> </td>
<td>Transport</td>
<td rowspan="3">OS</td>
</tr>
<tr>
<td> </td>
<td>Internet</td>
<!--<td>OS</td>-->
</tr>
<tr>
<td> </td>
<td rowspan="2">Link</td>
<!--<td>OS</td>-->
</tr>
<tr>
<td> </td>
<!--<td>Link</td>-->
<td>Hardware</td>
</tr>
</tbody>
</table>
不过,使用更现代的 CSS 技术来强制实现最小行高可能会有所改进 -
在 2004 年停止使用 Dreamweaver 之前,我一直在使用该技术。
推荐阅读
- javascript - Firebase 模拟器验证测试 - 使用 initializeAdminApp 时间戳时出错
- azure - 无法成功将参数传递给链接的 ARM 模板
- python-3.x - 在没有pylint抱怨的情况下向覆盖的函数添加额外的参数
- sql - add_months 的替代方案
- java - 有没有办法将数组中的元素组合起来并将其放回同一个数组中?
- python - 每次我用python运行代码时,文件地址都会在vscode终端中重复
- python - SQL Server 和 PyODBC
- php - 无法将最大文件大小上传增加到 2gb 以上
- python - 误差条和 seaborn 散点图中的颜色不匹配
- reactjs - 如何在悬停更改时更改 Material-UI MenuItem 背景?