这个表格包含一些元素的数据,我希望每个行字段或整行都可以让用户访问每个元素的详细信息。问题是我不知道该如何处理,我可以选择:
将整行放入一个<a>
标签中:
<table>
<a href=""><tr>…</tr></a>
<a href=""><tr>…</tr></a>
…
</table>
或者将每个单元格的所有内容放入一个<a>
中:
<table>
<tr>
<td><a href="">…</a></td>
<td><a href="">…</a></td>
</tr>
…
</table>
当然我更喜欢第一种方法,但我不知道这样做是否正确。
以下是我得到将行用锚标签包围的想法的来源之一:
HTML5: Wrap Block-Level Elements with A’s
更新:
我认为我需要再清楚一些,这个表格包含了显示系统中用户
概述的数据:
+----+------+-------+
| Id | Name | Score |
+----+------+-------+
| 1 | Foo | 10 |
| 2 | Bar | 8 |
| 3 | Baz | 5 |
| … | … | … |
| n | Zzz | 0 |
+----+------+-------+
所以我认为使用表格是正确的,但每个用户有超过3个相关信息字段,所以我会使用链接来到达每个用户的详细信息(15+个字段),否则这些信息将无法在单行表格中显示(例如2048个字符的“注释”字段);这就是为什么我想到了显示每个用户详细信息的链接的想法。当然,我不在乎整行是否可点击,我只是想通过不必将每个字段的所有数据都包含在
<a>
中来简化代码。另一种解决方案是创建一个额外的单元格来专门保存到用户详细信息的链接,像这样:+----+------+-------+-------------------------+
| Id | Name | Score | Options |
+----+------+-------+-------------------------+
| 1 | Foo | 10 | (detail) (misc. option) |
| 2 | Bar | 8 | (detail) (misc. option) |
| 3 | Baz | 5 | (detail) (misc. option) |
| … | … | … | … |
| n | Zzz | 0 | (detail) (misc. option) |
+----+------+-------+-------------------------+
但我不知道是否符合任何用户体验指南(在这种情况下,我认为比任何语义规则更不严格,是一个更明智的解决方案)。当然,我会在同一字段(表格单元格)中包含几个<a>
以供每个不同选项使用,但我认为这不违反任何语义规则。
<tr>
不是块级元素,所以它不起作用。实际上,HTML解析器会将<a>
元素从表格中排除。 - Alohci