我是Microdata的新手,我慢慢得到它。但由于某种原因,我没有使用W3C验证器进行验证,因为我在<div>
中间放置<ul>
:
<div itemscope itemtype="http://schema.org/BeautySalon">
<ul>
<li>
<b>
<span itemprop="name">foobar and you</span>
</b>
</li>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<li>
<span itemprop="streetAddress">6969 foobar</span>
</li>
<li>
<span itemprop="addressLocality">Miami Beach</span>,
<span itemprop="addressRegion">FL</span>
<span itemprop="postalCode">33139</span>
</li>
</div>
<li>
<span itemprop="telephone">305 691 6969</span>
</li>
</ul>
</div>
我如何正确添加
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
并正确添加所有itemprop
并且仍然是W3C有效吗?
答案 0 :(得分:1)
ul
不允许div
作为子级,因此您不能将其用作多个li
元素的容器。有各种可能的解决方案。
我认为在这里使用ul
是不合适的。但是如果你想继续使用ul
:
街道地址与地区/地区/邮政编码不在同一个列表项中似乎没有意义。因此,您可能希望将它们全部放在同一个列表项中(您可能还希望将br
用于邮政地址)。
如果您想使用b
作为名称,则可以省略span
。在b
上指定微数据或在li
上指定(以保持一致性)。
如果您不需要单独的电话号码元素,您可以在li
上指定微数据。
这会给你:
<div itemscope itemtype="http://schema.org/BeautySalon">
<ul>
<li itemprop="name"><b>foobar and you</b></li>
<li itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">6969 foobar</span><br>
<span itemprop="addressLocality">Miami Beach</span>,
<span itemprop="addressRegion">FL</span><br>
<span itemprop="postalCode">33139</span>
</li>
<li itemprop="telephone">305 691 6969</li>
</ul>
</div>
你can use every HTML5 element for Microdata。重用现有标记。仅当您需要Microdata的其他元素时,请添加并使用div
/ span
(以及可能meta
/link
)。