parent div 和 children 上的微数据 itemprop

Microdata itemprop on parent div with children

我正在网站上添加微数据,想知道 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 上定义它,内容实际上在 child 元素中?

这取决于属性(它应该有什么价值)。

具有 hrefsrc 属性(例如 aimg)的元素上的 itemprop 创建一个 URI 值:它采用href/src 属性的值,而不是元素的内容。

  • 此处 author 属性 的字符串值为“Author's Name”:

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

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

还有一些例外,例如 meter 元素或 time 元素。您可以参考 .

中的摘要

撇开这些例外,如果该值应该是一个字符串,并且您只有 div 个元素,那么在哪个元素上指定 itemprop 并不重要,所以这三个片段都有字符串“bar”作为 foo 属性:

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