正在使用"属性语义正确时隐藏表单元格,因为另一个表单元格的rowspan和colspan属性?
我只能找到完全删除表单元格的例子,为单元格(s)跨越多行和颜色(具有rowspan
和colspan
属性)腾出空间。
的例子:
<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
只能将td
和th
作为子元素)。
我做了一些调查,但还是找不到一个明确的答案。
这是不正确的,您根本不需要在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>