使用 "hidden" html 属性隐藏表格单元格是否因为行跨度和列跨度语义不正确?



正在使用"属性语义正确时隐藏表单元格,因为另一个表单元格的rowspan和colspan属性?

我只能找到完全删除表单元格的例子,为单元格(s)跨越多行和颜色(具有rowspancolspan属性)腾出空间。

的例子:

<table>
<tr>
<td colspan="3" rowspan="2">#1</td>
</tr>
<tr></tr>
<tr>
<td>#7</td>
<td>#8</td>
<td>#9</td>
</tr>
</table>

但是这样做在语义上是有效的吗?

<table>
<tr>
<td colspan="3" rowspan="2">#1</td>
<td hidden></td>
<td hidden></td>
</tr>
<tr>
<td hidden></td>
<td hidden></td>
<td hidden></td>
</tr>
<tr>
<td>#7</td>
<td>#8</td>
<td>#9</td>
</tr>
</table>

只是给一点上下文:我正在研究一个富文本编辑器,该编辑器具有将空span元素添加到空块元素的约束。在空表行中使用span元素将被认为是无效的HTML (tr只能将tdth作为子元素)。

我做了一些调查,但还是找不到一个明确的答案。

这是不正确的,您根本不需要在HTML中编写这些单元格。示例中正确的HTML如下:

在一行的所有单元格上拥有相同的rowspan值(就像你的第一个单元格跨越所有列)是没有意义的-这不是一个网格系统,而只是一个表,它将包含你放入其中的任何内容。

table {
border-collapse: collapse;
width: 300px;
}
td {
border: 1px solid #ddd;
vertical-align: top;
}
tr:first-child > td {
height: 2.8em;
}
<table>
<tr>
<td colspan="3">#1</td>
</tr>
<tr>
<td>#7</td>
<td>#8</td>
<td>#9</td>
</tr>
</table>

最新更新