Microdata可以应用于任何类型的HTML元素吗?

Flo*_*Flo 3 html markup microdata

在网络上的所有示例中,我都看到了Microdata属性itemscopeitemtype应用于div元素,如下所示:

<div itemscope itemtype ="http://schema.org/Movie">
  <h1 itemprop="name">Avatar</h1>
  <span>Director: <span itemprop="director">James Cameron</span> (born August 16, 1954)</span>
  <span itemprop="genre">Science fiction</span>
  <a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</div>
Run Code Online (Sandbox Code Playgroud)

但是Microdata可以应用于任何其他元素,在我的情况下,我想将它应用于列表项:

<ul>
<li itemscope itemtype ="http://schema.org/Movie">
  <h1 itemprop="name">Avatar</h1>
  <span>Director: <span itemprop="director">James Cameron</span> (born August 16, 1954)</span>
  <span itemprop="genre">Science fiction</span>
  <a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这有什么已知的问题吗?

uno*_*nor 8

您可以将每个 HTML5元素用于Microdata ...

Microdata为HTML5定义了5个新属性:

  • itemid
  • itemprop
  • itemref
  • itemscope
  • itemtype

让我们看看它们可以在哪里使用.第5.2节说:

每个HTML元素都可以itemscope指定一个属性.

所以每个元素都可以itemscope.进一步说:

具有itemscope属性的元素可以itemtype指定属性

因此,如果它itemscope(并且我们知道每个元素都可以拥有它),它也可以拥有它itemtype.下一个:

具有itemscope属性和itemtype属性的元素[...]也可以itemid指定属性

如果有itemscopeitemtype,它可以有itemid也.和:

具有itemscope属性的元素可以itemref指定属性

如果有itemscope,它可以有itemref.

itemprop现在只缺少.它在第5.3节中定义:

每个HTML元素都可以itemprop指定一个属性

所以itemprop也可以用在每个元素上.

(请注意,Microdata(W3C Note)是指用于定义"HTML元素"的HTML5规范,因此"HTML元素"实际上是指"HTML5元素".)

...但是一些元素获得了不同的内容模型(何时itemprop使用)

请参见8.1内容模型.

例如:

  • href成为必需属性aarea
  • data 成为必需属性 iframe
  • 属性name,http-equivcharset不再允许上meta

...并且一些元素具有用于确定属性值的特殊规则(何时itemprop使用)

请参见5.4值.

例如:

链接的特殊规则.这里foobar的值是URL http://example.com/,而不是字符串Link:

<a href="http://example.com/" itemprop="foobar">Link</a>
Run Code Online (Sandbox Code Playgroud)

foobar是有价值的5,而不是10:

<data value="5" itemprop="foobar">10</data> 
Run Code Online (Sandbox Code Playgroud)

搜索引擎应该知道这一点.

如果谷歌或其他搜索引擎服务支持它无法肯定回答,因为在涉及隐藏其代码的第三方服务时,无法确定无法回答.即使他们(似乎)今天支持它,我们也不知道明天会发生什么.所以这些问题通常不适合Stack Overflow.

但是,没有理由认为搜索引擎不支持它.