我正在为日历编写一些标记(认为Google日历或Apple日历Web应用程序)。 Google的标记是一张大桌子。简化的,是这样的:日历的大多数语义标记:时间表,日期容器和事件列表
<table>
<tr>(Entire Calendar week)
<td>(times)</td>
<td>Monday</td>
...
<td>Friday</td>
</tr>
</table>
在苹果的日历,几乎每个页面上的元素只是一个<div>
,这在我看来是低于语义。
在我的项目中,这是一个为期一天的日历。我只在左侧列出时间,从上午9点到晚上9点标记每个半小时,在右侧标记事件发生的那一天。现在,我刚刚制定了一个<table>
,一天<section>
,和事件<div>
s的列表。
我对我的方法的语义并不完全满意,Google似乎没有问题,除非我觉得这是一张只有一行的表;如果我在没有动态事件等的情况下(如在高中时获得的课程时间表)标上真正的表格,则每一列代表一天,而每一行代表一个时间分组,如一小时。
但是,当然这会使动态事件变得复杂化,这些动态事件需要根据他们的时间完全针对他们的父母进行定位,并且他们可能无法完美地适应表格行。
所以问题是,对于一天的日历,左边和右边的日期列表中最多的语义标记是什么?链接到一个规范的额外点,或至少一个有信誉的博客文章(我已经找不到关于该主题的文章)。
_“这使复杂动态事件,需要根据他们的时间绝对对父母定位”_ - 首先,我不认为他们绝对“需要” - 你可以计算基于绝对时间预先在父事件的绝对时间和子事件的相对偏移量上进行。 _“,并且它们可能不会完全适合表格行”_ - 您可以使用比“一小时”更精细的行粒度f.e. 15分钟... – CBroe
但是我可能只是用一个_ordered list_ of events(推理:这些事件是你想在这里传输的_actual_数据 - 其中有_no_事件的空表行而宁愿只是传输“非信息” ),并使用HTML5'time'元素标记时间(可能甚至使用_full_日期和时间,然后仅显示日期)。这些列表项目在整个一天中的“间隔”将仅仅是一种纯粹的表示事物 - 无论是通过事先计算服务器端的绝对位置还是必要的边距,还是客户端使用JavaScript。 – CBroe