【发布时间】:2015-02-21 01:19:49
【问题描述】:
此表包含有关特定元素集的数据,我希望行的每个字段或所有行都允许用户访问每个元素的详细信息。问题是我也不知道该怎么做:
将整行放入<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
更新:
我想我必须更清楚一点,表格包含数据以显示系统中Users的概述:
+----+------+-------+
| 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>,但我认为这不违反任何语义规则。
【问题讨论】:
-
第一个是无效标记。所以不,第二个是你最好的选择。
-
如果您希望能够点击表格行,您需要使用 Javascript 为其添加点击监听器。
-
@tymeJV 好吧,我最近读到,根据 HTML5,放置块级 () 元素现在在语义上是正确的,它提供了有关
<div>、<h*>和其他元素的示例,但没有关于 @ 987654334@s。 (信息在这里)[davidwalsh.name/html5-elements-links]. -
@Barmar 我宁愿远离 js,因为我正在关注不引人注目的 javascript 开发。
-
<tr>s 不是块级元素,所以不,它不起作用。事实上,<a>元素会被 HTML 解析器从表格中弹出。