嵌套时间标签在HTML5中是否有效(表达时间段/持续时间)?

时间:2015-12-19 15:27:35

标签: html5 datetime semantics

我试图用<time>标签来表达时间段,我想用这个:

<time datetime="P4Y"><time>2000</time>-<time>2004</time></time>

这是否有效且语义正确?如果没有,有没有更好/更简单的方式表达这样的东西?

2 个答案:

答案 0 :(得分:2)

WHATWGW3C规范都说同样的事情:这至少符合内容模型(这可能是你的意思&#34;有效&#34;,只要一个一致性检查器会接受它{)time元素(虽然(几乎没有维护)W3C分支在其定义中包含一个矛盾,whatwg/html#426)。

简而言之:time元素可以包含&#34; Phrasing Content&#34;如果它具有datetime属性,则只能包含&#34; Text&#34 ;; time元素本身就是Phrasing Content。你的上述情况绝对如此。

至于更长的问题是否在语义上是正确的(以及其他符合,因为语义正确性是HTML文档的一致性要求),必须考虑以下事项:

  

time元素表示其内容,以及datetime属性中这些内容的机器可读形式。

现在,问题是<time>2000</time>-<time>2004</time>是否与P4Y具有相同的含义(即,它的内容和机器可读的datetime属性是否仅在形式上有所不同):I&# 39; d说它在这里非常明确,这里有两种不同的语义。在内容中,您将表示2000年至2004年的特定时间间隔;在属性中,您代表一般的四年持续时间。这两个不一样,因此外部time元素在语义上是不可接受的。

答案 1 :(得分:0)

这是来自W3C

  

时间元素表示其内容,以及a   datetime属性中这些内容的机器可读形式。该   种类内容仅限于各种日期,时间,时区   偏移和持续时间,如下所述。

     

可能存在日期时间属性。如果存在,其值必须为a   以机器可读的格式表示元素的内容。

     

必须具有datetime content属性的time元素   没有任何元素后代。

这是参考

http://www.w3.org/TR/html5/text-level-semantics.html#the-time-element