我有以下设计我需要标记,我不能修改的布局:
请忽略填充文字,我知道它没有多大意义。
我选择了一张桌子,因为它感觉像桌子一样95%。但是,当涉及到每个项目下面的数据点布局的适当语义标记时,我感到困惑。每个点都是不同的,即这不是自由形式的文本,并且每次都放在相同的相对位置 - 但它打破了传统的数据表布局,因为没有为这些点渲染的已分配标题或标签。我有兴趣标记这样的布局,以便它们都是:
过去几年我曾多次遇到过这个问题,最后破解并向社会寻求建议。我试过了:
tbody
s,并在第二行使用额外的数据点,但在我无法弄清楚如何将“subrow”与项目相关联时放弃了。 / LI>
th
和rowspans
来创建更复杂的表格布局并尝试使用ARIA来获得所需的屏幕阅读结果,但都无济于事任何帮助表示感谢。
注意:渲染它以显示跨浏览器并不是那么难 - 我对如何使这种语义和可访问感兴趣。
答案 0 :(得分:3)
是的,请带一张桌子!我花了几次迭代来获得一个包含表Webrichtlijnen的网站,但它最终通过了所有标准。您需要注意以下几点:
summary
属性以提供简短的summary of your table。您可以添加<caption/>
,但这不是必需的,在某些情况下,表格上方的标题也可以。th
和上使用scope
属性作为您的第一个td
(在大多数情况下,其他列将与第一个表格单元格的标签相关联一排)。<abbr/>
标记。该表的一个例子可能是:
<table summary="summary">
<thead>
<tr>
<th scope="col">Course</th>
<th scope="col">Column 2</th>
<th scope="col">Column 3</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td scope="row">
<div class="title">Title</div>
<div class="sub-title">Subtitle</div>
<div class="period">Period</div>
</td>
<td class="number">1.45</td>
<td class="number">$1,047</td>
<td><a href="">Delete</a></td>
</tr>
<tbody>
</table>
如果您选择在删除链接上使用Ajax,首先在没有任何Javascript的情况下实现它(只需指向删除相应项的URL),然后向其添加Ajax功能。
答案 1 :(得分:2)
一般来说,我有一个包含1个标题行和6个数据行的表,其中奇数数据行有3个单元格,偶数数据行有一个单元格跨越三列。
在偶数行的单元格中,我有一个{lorem 102“行的<h?>
元素和一个详细点列表。在偶数行的单元格的<td>
元素上,我有headers
属性指向上面行的第一个单元格,以提供从子行到项目的关联。
我可能会在<caption>
元素上添加summary
元素或<table>
属性来描述结构。
更新:看过Jasper de Vries的回答,我意识到我省略了删除列。请遵循他的建议。