我一直在尝试使用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项类型吗?
3)如果没有指定itemscope itemtype,则itemprop默认为父itemscope项类型吗? 例如:
<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>
第二个例子是无效的,我知道,但它是一个代码生成器的例子。那个特定的生成器会产生无效的代码,所以我知道不会使用它,但是他们在哪里使用链接标签(虽然不正确)?
答案 0 :(得分:4)
这些文档几乎可以回答您的所有问题。也许你已经看过他们,但以防万一。
所以问题的答案就会出现:
1.第一个是正确的。官方微数据规范告诉我们
Microdata最有用,当它用于上下文时 其他作者和读者能够合作,以获得新的用途 标记。
为此,有必要为每个项目提供一个类型,例如 “http://example.com/person”或“http://example.org/cat”,或 “http://band.example.net/”。类型被标识为URL。
项目的类型作为itemtype属性的值给出 与itemscope属性相同的元素。
实施例
<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.No。 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属性该值是项目 由元素创建。
如果元素是元元素该值是的值 element的content属性(如果有)或空字符串(如果有) 没有这样的属性。
如果元素是音频,嵌入,iframe,img,source,track或 视频元素该值是由此产生的绝对URL 解析元素的src属性相对于的值 设置属性时的元素,如果存在则为空字符串 没有这样的属性,或者解析它会导致错误。
如果元素是a,area或link元素,则值为 解析元素值的绝对URL 相对于属性时元素的href属性 set,如果没有这样的属性或者解析,则为空字符串 它会导致错误。
如果元素是对象元素该值是绝对URL 解析元素数据属性的值 相对于设置属性时的元素,或者为空 如果没有这样的属性,或者如果解析它导致一个 错误。
如果元素是数据元素该值是的值 element的value属性(如果有)或空字符串 否则。
如果元素是时间元素该值是元素的日期时间 值。
否则该值是元素的textContent。
网址属性元素是a,area,audio,embed,iframe,img, 链接,对象,源,轨道和视频元素。
4.保持优先权。搜索引擎有一般建议 - 标记消费者
但是,作为一般规则,您应该仅标记内容 访问网页但不隐藏内容的人可以看到 div或其他隐藏的页面元素。
Schema.org doc在隐藏元素的使用可能有意义时给出了很好的概述。
许多页面只能使用itemscope,itemtype和 itemprop属性(在第1节中描述)以及类型和 schema.org上定义的属性(在第2节中描述)。然而, 有时,项目属性很难让机器理解 没有额外的消歧。本节介绍如何操作 标记时提供机器可理解的信息版本 你的网页。
日期,时间和持续时间:使用时间标记 日期时间
枚举和规范引用:使用链接标记 href
缺少/隐含信息:将元标记与内容一起使用。
查看this link了解详情。