为了显示自发布帖子以来流逝的时间,Facebook使用以下方式中的
abbr
abbr
是一个有效的HTML5元素,它只有一个属性:title
。根据MDN文档:
HTML提供了一种简单、直接的方式来标记缩写,以确保读者能够理解它们。
还有关于如何使用它的说明:
HTML缩写元素(
<abbr>
)识别缩写和首字母缩略词,帮助不熟悉缩写的读者,并使屏幕阅读软件(用于视觉障碍用户)适当地阅读文本。经验法则是尽可能使用该元素。
HTML5允许通过属性扩展元素,这些属性不是标准的:数据属性:
HTML5的设计考虑到了与特定元素相关联的数据的可扩展性,但不需要有任何定义的含义。data-*属性允许我们在标准的语义化HTML元素上存储额外的信息,而无需使用其他技巧,如classList、非标准属性、DOM上的额外属性或setUserData。
所以基本上,data-utime
和data-shorten
是Facebook和其他模块用来显示关于日期的更详细描述的一种方式。
<time>
正如一些评论中指出的那样,对于日期来说,使用abbr
并不是100%正确的,因为在HTML5中可以使用其他标签来实现这个目的。他们可以使用像这个:
<time datetime="2015-07-28 15:44">Martedì 28 luglio 2015 alle ore 15.44</time>
由于它提供更好的语义,而且无需使用数据属性data-utime
来提供机器可读的时间戳,因此可以实现对时间的详细版本。
在工具提示中显示 还要记住,title
是一个全局属性。因此,您也可以在time
中找到它。这样,您仍然可以在鼠标悬停时显示工具提示。
<abbr title="{{ order.added }}"><time datetime="{{ order.added }}">{{ order.daysAgo }} fa</time></abbr>
,因为单独的 time
标签不允许鼠标悬停在日期上以查看精确格式化的日期。 - Aerendir