Microdata可以应用于任何types的HTML元素吗?
在networking的所有例子中,我看到Microdata属性itemscope
和itemtype
应用于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>
但是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>
有没有已知的问题呢?
简单地说,“是”。 请亲自查看Google页面,以便他们使用不同的代码: https : //support.google.com/webmasters/answer/176035?hl = zh_CN
您可以将每个 HTML5元素用于Microdata …
Microdata为HTML5定义了5个新的属性:
-
itemid
-
itemprop
-
itemref
-
itemscope
-
itemtype
让我们看看他们可以使用的地方。 第5.2节说:
每个HTML元素可能都有一个指定的
itemscope
属性。
所以每个元素都可以有itemscope
。 进一步说:
具有
itemscope
属性的元素可能具有指定的itemtype
属性
所以如果它有itemscope
(我们知道每个元素都可以),它也可以有itemtype
。 下一个:
具有
itemscope
属性和itemtype
属性的元素也可以具有指定的itemid
属性
如果它有itemscope
和itemtype
,它也可以有itemid
。 和:
带有
itemscope
属性的元素可能具有指定的itemref
属性
如果它有itemscope
,它可以有itemref
。
现在只有itemprop
丢失了。 它在5.3节定义:
每个HTML元素可能都有一个指定的
itemprop
属性
所以itemprop
也可以用在每个元素上。
(请注意,Microdata(W3C注释) 是指定义HTML元素的HTML5规范 ,所以本质上“HTML元素”的意思是“HTML5元素”。)
…但一些元素获得不同的内容模型(当使用itemprop
时)
请参阅8.1内容模型 。
例如:
-
href
成为a
和area
的必需属性 -
data
成为iframe
的必需属性 - 在
meta
上不再允许属性name
,http-equiv
和charset
…和一些元素有特定的规则来确定属性值(当使用itemprop
时)
请参阅5.4值 。
例如:
链接的特殊规则 。 这里foobar
的值是URL http://example.com/
,而不是stringLink
:
<a href="http://example.com/" itemprop="foobar">Link</a>
这里foobar
的值是5
,而不是10
:
<data value="5" itemprop="foobar">10</data>
而search引擎应该知道这一点。
如果Google或其他search引擎服务提供支持,则无法明确回答,因为涉及隐藏代码的第三方服务时,没有什么可以肯定的回答。 即使他们(似乎)今天支持它,我们也不知道明天会发生什么。 所以这样的问题通常不适合Stack Overflow。
但是,没有理由认为search引擎不会支持它。
加上Jeremy Miller的回答:
微数据本质上形成对象。 在有效的HTML中,具有itemscope
属性的元素包含与其关联的所有微数据。 而且, itemprop
的每个元素的作用域足以包含该属性所需的所有数据。
设想用项目本身replace每个itemscope
元素; 并用属性本身replace每个itemprop
元素及其值。 (Think XML)
在你的例子中,该项目看起来像这样:
<movie> <name>Avatar</name> <director>James Cameron</director> <genre>Science fiction</genre> <trailer>Trailer</trailer> </movie>
itemscope
和itemprop
的这种结构可以应用于任何合适的HTML元素层次结构,而不pipe它们是什么元素。 啰嗦的答案仍然是,但我希望这有助于你理解微数据是如何解释的。
另外,我猜你的例子是从这里开始的 ,但是我build议你至less给1a-1d一个快速阅读。