我有一个代表我公司营业时间的定义清单:
<dl>
<dt>Monday - Friday</dt>
<dd>8:30am to 5:30pm</dd>
<dt>Saturday - Sunday</dt>
<dd>9:00am to 5:00pm</dd>
<dt>Holidays</dt>
<dd>Closed</dd>
</dl>
这似乎是一种安排此内容的良好,有条理的方式。但也许我错了?
我想知道如何使用time
元素来表示开放时间?
最终,我正在考虑做这样的事情:
<time itemprop="openingHours" datetime="Mo,Tu,We,Th,Fr 8:30-17:30">Monday - Friday, 8:30am to 5:30pm</time>
但是对于dt
标记中的一周中的日期以及dd
中的小时数,我不确定标记的正确方法是什么?两个不同的time
标签似乎有误。
答案 0 :(得分:1)
使用Microdata,你不会注释&#34;你的HTML标记。标记仅用作载体。在Microdata使用者解析页面之后,HTML和Microdata项目之间不再存在关联。
所以你实际上有两个问题:
HTML5问题很简单:您可以将time
元素用于日期,时间,时区偏移或持续时间。所以你的dl
看起来像是:
<dl>
<dt>Monday - Friday</dt>
<dd><time datetime="08:30">8:30am</time> to <time datetime="17:30">5:30pm</time></dd> <!-- could also use a duration string instead, or an additional time element; but probably doesn’t make much sense in this context -->
<dt>Saturday - Sunday</dt>
<dd><time datetime="09:00">9:00am</time> to <time datetime="17:00">5:00pm</time></dd>
<dt>Holidays</dt>
<dd>Closed</dd>
</dl>
现在查看schema.org openingHours
property的定义,我们发现没有强制性内容格式:&#34;营业时间可以指定为[...]&# 34; (强调我的)。
但是,他们作为可能格式记录/推荐的语法是无效HTML5 :time
element不能具有日期时间值,例如&#34; Mo,Tu,We,Th ,8:30-17:30&#34;或者&#34; Mo-Su&#34; (我创建了一个issue)。
因此,如果您想使用此文档格式,则不应使用time
元素。相反,你可以
使用data
element及其value
属性:
<data itemprop="openingHours" value="Mo,Tu,We,Th,Fr 8:30-17:30">…</data>
如果您愿意,可以使用它来包装相应dt
或dd
的内容。
使用meta
element:
<meta itemprop="openingHours" content="Mo,Tu,We,Th,Fr 8:30-17:30">
如果您愿意,可以将其设置为相应的dt
或dd
的孩子(是的,in the body
)。
您可能希望改为使用openingHoursSpecification
→OpeningHoursSpecification
。