什么 HTML 标签在语义上适合带有 "intervals" 的 "alternating" 列表?

What HTML tag is semantically suitable for an "alternating" list with "intervals"?

假设我想展示一个 TODO 列表,如下所示:

8:00
    Walk the dog!
8:30
    Clean the car!
9:20
    Rob the bank!
9:21
    Run the dog!
22:00
    Have a beer!
22:05

我的第一个想法是使用 定义列表,但它不太适合:

<dl>
    <dt>8:00</dt>
    <dd>Walk the dog!</dd>
    <dt>8:30</dt>
    <dd>Clean the car!</dd>
    <dt>9:20</dt>
    <dd>Rob the bank!</dd>
    <dt>9:21</dt>
    <dd>Run the dog!</dd>
    <dt>22:00</dt>
    <dd>Have a beer!</dd>
    <dt>22:05</dt>
    <!--<dd>Missing element???</dd>-->
</dl>

据我所知,<dt> 后面必须跟一个或多个 <dd> 标签。但是最后一次 (22:05) 后面没有任何(非空)元素。

此外,语义上给出的时间点应该与其之前的元素和之后的元素一样多地对应,但这种关系在这里也丢失了。

是否有任何其他 HTML 标签组合可能更适合此数据?

HTML 无法表达这一点。您必须使 durations/intervals 明确(即使用自然语言)。

虽然 ,但持续时间没有具体日期 start/end。所以你可以表达出遛狗需要 30 分钟,而不是你从 8:00 遛狗到 8:30。通过嵌套 time 个元素,您(最多)可以对此进行暗示。

非时间相关值的等价物是 data element,但没有标准化的格式,因此您无法表示一个值表示海深或海深间隔。

所以 dl 它可能看起来像这样:

<dl>
    <dt><time datetime="12h 39m"><time>09:21</time> to <time>22:00</time></time></dt>
    <dd>Run the dog!</dd>
    <dt><time datetime="5m"><time>22:00</time> to <time>22:05</time></time></dt>
    <dd>Have a beer!</dd>
</dl>

(这也可以让你跳过时间,例如,如果你真的没有 运行 从 09:21 到 22:00 的狗。)

语义较弱的变体(例如,如果您不想在同一元素中提供结束时间)将是这样的:

    <dt><time datetime="5m"><time>22:00</time></time></dt>

在这种情况下,您必须最后一次提供一个空的 dd 元素(或任何对您的情况有意义的元素)。