2

我一直在尝试使用 Google Schema,并且查看了一些代码生成器,它们的设计各不相同。我用于这些示例信息的链接:http: //schema.org/Book

1) 什么时候适合使用 itemscope itemtype="someSchemeURL.org" 或实际的 href?例子:

<div itemprop="author" itemscope itemtype="http://schema.org/Person">
or
<div itemprop="bookFormat" href="http://schema.org/bookFormatType">

第二个示例甚至不是有效的 HTML,因为 div 不接受 href 属性。

2) 对于上面的例子,第一列总是 itemprop,第二列总是 itemscope itemtype?

3)如果没有指定itemscope itemtype,itemprop是否默认为父itemscope itemtype?例子:

<div itemscope itemtype="http://schema.org/Book">
    <div class="book" itemprop="name"></div>
    <div itemprop="author" itemscope itemtype="http://shema.org/Person">
        <div class="author" itemprop="name"></div>
    </div>
</div>
The .author class will result in the name attributed to "author"
The .book class will result in the name attributed to "book"

所以这意味着尽管多个 itemprop 具有相同的名称,但 itemprop 始终适用于父元素,对吗?

4) 在哪里指定何时使用 meta、link、span 或 div?还是这取决于偏好?例子:

<div>
    <meta itemprop="datePublished" content="2013-07-01">
    Some text
</div>
<div>
    Some text
    <link itemprop="bookFormat" href="http://schema.org/bookFormatType">Ebook
</div>

我知道,第二个示例无效,但它是来自代码生成器之一的示例。那个特定的生成器会产生无效的代码,所以我知道不要使用它,但是他们从哪里得到使用链接标签的想法(尽管不正确)?

4

1 回答 1

4

这些文档几乎可以回答您的所有问题。也许您已经看过它们,但以防万一。

因此,按出现的顺序回答您的问题:

1.第一个是正确的。官方微数据规范告诉我们

但是,当在其他作者和读者能够合作以对标记进行新用途的环境中使用微数据时,它是最有用的。

为此,需要为每个项目指定一个类型,例如“ http://example.com/person”、“http://example.org/cat ”或“ http ://band.example ” .net/ ”。类型被标识为 URL。

项目的类型作为与 itemscope 属性相同的元素上的 itemtype 属性的值给出。

例子

<section itemscope itemtype="http://example.org/animals#cat">
 <h1 itemprop="name">Hedral</h1>
 <p itemprop="desc">Hedral is a male american domestic
 shorthair, with a fluffy black fur with white paws and belly.</p>
 <img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months">
</section>

2.没有。Itemprop用于表示某个实体的属性。Itemscope - 实体范围。和itemtype - 实体的类型。这些是具有不同含义的不同标签,可以单独使用(至少在理论上)。什么文档说:

在高层次上,微数据由一组名称-值对组成。这些组称为项目,每个名称-值对都是一个属性。项目和属性由常规元素表示。

要创建一个项目,使用 itemscope 属性。

要将属性添加到项目,请在项目的其中一个后代上使用 itemprop 属性。

和例子

<div itemscope>
 <p>My name is <span itemprop="name">Elizabeth</span>.</p>
</div>

<div itemscope>
 <p>My name is <span itemprop="name">Daniel</span>.</p>
</div>

3.即使itemscope itemtype与itemprop一起指定,它仍然是父类型的属性。在这种情况下,此属性是实体本身。而且您的示例是正确的:名称将转到不同的实体。这是 doc 关于处理属性的内容。

由具有 itemprop 属性的元素添加的名称-值对的属性值与以下列表中的第一个匹配情况相同:

如果该元素还具有 itemscope 属性,则该值是该元素创建的项目。

如果元素是元元素,则 value 是元素的 content 属性的值(如果有),如果没有这样的属性,则为空字符串。

如果元素是 audio、embed、iframe、img、source、track 或 video 元素,则该值是在设置属性时解析元素的 src 属性值相对于该元素的绝对 URL,或者如果没有此类属性或解析它会导致错误,则为空字符串。

如果元素是 a、area 或 link 元素该值是在设置属性时解析元素的 href 属性值相对于该元素的绝对 URL,如果不存在则为空字符串属性,或者如果解决它会导致错误。

如果元素是对象元素,则该值是在设置属性时解析相对于元素的元素数据属性值的绝对 URL,如果没有此类属性或解析它,则为空字符串导致错误。

如果元素是数据元素value 是元素的 value 属性的值,如果它有一个,否则为空字符串。

如果元素是时间元素,则该值是元素的日期时间值。

否则该值为元素的 textContent。

URL 属性元素是 a、area、audio、embed、iframe、img、link、object、source、track 和 video 元素。

4.留给偏好。来自搜索引擎的一般建议 - 标记消费者

但是,作为一般规则,您应该只标记访问网页的人可见的内容,而不是隐藏 div 或其他隐藏页面元素中的内容。

当隐藏元素的使用可能有意义时,Schema.org 文档给出了很好的概述。

许多页面可以仅使用 itemscope、itemtype 和 itemprop 属性(在第 1 节中描述)以及在 schema.org 上定义的类型和属性(在第 2 节中描述)来描述。但是,有时如果没有额外的歧义,机器很难理解项目属性。本节介绍如何在标记页面时提供机器可理解的信息版本。

日期、时间和持续时间:将时间标签与 datetime 一起使用

枚举和规范引用:使用带 href 的链接标签

缺失/隐含信息:使用带有内容的元标记。

检查此链接以获取详细信息。

于 2013-07-25T20:28:35.350 回答