W3C HTML5标准阅读笔记 - data、time

标准原文:https://www.w3.org/TR/html5/text-level-semantics.html#the-data-element

HTML5中,有2个标签可用于既存储用户友好、便于阅读的文本,又存储机器友好、便于处理的数据 -- data标签和time标签。其中,data标签用于存储通用信息,而time标签则专门用来存储日期时间有关的信息。

data

data标签用于存储通用的信息。其标签内的文本内容用于供用户阅读,而标签的特有属性value则用于存储机器友好、便于程序处理的数据 -- 比如,可以用JavaScript脚本获得data元素后再对该元素的value值进行操作。由于data标签的这种语义,HTML5标准规定data的特有属性value是必须出现的。

在Chrome浏览器中,data标签不呈现任何特殊显示效果。

time

与data标签类似,time标签专门用于存储日期时间信息,也即它实质上就是一个语义更为细化的data标签。不过,与data标签不同的是,time标签的特有属性叫做datetime (而不是value),用于存储机器友好、易于处理的时间信息。time标签的datetime属性是可以缺失的,这一点与data标签的value属性并不一致。

如果time标签的datetime属性存在,则该元素的“时间值”即为该datetime属性的值。

如果time标签的datetime属性不存在,则该元素的“时间值”即为time标签内部的文本值。在这种情况下,标准规定:time标签只能包含文本内容,而不能包含任何子标签 -- 这一点比较好理解,因为如果存在子标签的话,那么对time标签的“时间值”的判定将变得异常复杂。

无论time标签的“时间值”是从datetime属性中获取,还是从标签中的文本内容获取,该值必须遵循一定的规则,从而保证其表示时间的合法性。也即,当datetime属性不存在时,time标签内部的文本内容必须符合这些规则。