Microdata itemprop与父母div与孩子们

时间:2015-07-27 10:37:01

标签: html5 semantic-markup microdata

我在网站上添加微数据,并想知道itemprop属性应出现在哪个级别。

例如,我有以下标记:

<div itemscope itemtype="http://schema.org/Article">
    <div class="author">
        <a href="http://www.author.com">Author's Name</a>
    </div>
</div>

itemprop应该直接放在a元素中,还是可以将其添加到<div class="author">并且可以正确解析?

我可以拥有以下内容:

<div itemscope itemtype="http://schema.org/Article">
    <div class="author" itemprop="author">
        <a href="http://www.author.com">Author's Name</a>
    </div>
</div>

而不是

<div itemscope itemtype="http://schema.org/Article">
    <div class="author">
        <a href="http://www.author.com" itemprop="author">Author's Name</a>
    </div>
</div>

换句话说,是否必须在元素上直接定义itemprop属性(例如aimg标记),或者可能在包装器div上定义它,内容实际上是在子元素中吗?

1 个答案:

答案 0 :(得分:1)

这取决于财产(它应该具有什么价值)。

itemprophref属性(例如srca)元素上的img会创建一个URI值:它取值href / src属性,而不是元素的内容。

  • 此处author属性的字符串值为&#34; Author's Name&#34;:

    <div itemprop="author">
        <a href="http://example.com/">Author's Name</a>
    </div>
    
  • 此处author属性的URI值为&#34; http://example.com/&#34;:

    <div>
        <a href="http://example.com/" itemprop="author">Author's Name</a>
    </div>
    

还有一些例外,例如meter元素或time元素。您可以参考my answer about datatypes in Microdata中的摘要。

除了这些例外之外,如果值应该是一个字符串,并且您只有div元素,那么您指定itemprop的元素无关紧要,所以这些三个片段都有字符串&#34; bar&#34;作为foo属性的值:

<div itemprop="foo">
  bar
</div>
<div itemprop="foo">
  <div>
    bar
  </div>
</div>
<div itemprop="foo">
  <div>
    <div>
      bar
    </div>
  </div>
</div>