Itemscope и itemprop на одном уровне

У меня есть ссылка, которая выглядит так:

<a href="//href" itemscope itemtype="http://schema.org/Product">
    <img src="src" itemprop="image">
</a>

Я хотел бы поместить itemprop="url" в тег <a>, но он содержит itemscope для этого продукта. Могу ли я поставить его на тот же уровень, что и itemtype=?

Или мне нужно либо обернуть все это в div, чтобы заставить его работать, либо использовать тег <meta> для микроданных itemprop="url"? Спасибо!


person YPCrumble    schedule 19.02.2014    source источник
comment
Этот вопрос кажется не по теме, потому что он касается SEO.   -  person John Conde    schedule 19.02.2014
comment
@JohnConde: я не думаю, что YPCrumble просит здесь совета по SEO.   -  person unor    schedule 19.02.2014
comment
Вообще говоря, как использовать mircodata, как правило, относится к сфере деятельности профессиональных веб-мастеров. Это, вероятно, следует пометить для миграции туда.   -  person John Conde    schedule 19.02.2014
comment
@JohnConde: Почему? Если вопросы об использовании микроданных должны быть перенесены в Webmasters SE, вопрос об использовании HTML также должен быть перемещен, поскольку микроданные являются расширением HTML5. У меня не было ощущения, что такие вопросы об использовании будут вообще не по теме здесь, на SO. Я согласен с тем, что их также можно публиковать на веб-мастерах, но это не обязательно означает, что они здесь не по теме (тот же случай с конкретными Wordpress/Drupal SE: спрашивать о них на SO по-прежнему актуально).   -  person unor    schedule 20.02.2014
comment
Mricodata не является HTML. Он используется в сочетании с HTML. И его единственная цель — поисковая оптимизация, поскольку он предназначен только для того, чтобы сообщать поисковым системам больше о некотором содержании. Таким образом, любые вопросы, касающиеся его использования, подпадают под SEO и, таким образом, являются прерогативой профессиональных веб-мастеров.   -  person John Conde    schedule 20.02.2014


Ответы (2)


Вы можете использовать itemprop и itemscope для одного и того же элемента, но это будет означать что-то другое.

В этом примере элемент Product имеет свойство url:

<div itemscope itemtype="http://schema.org/Product">
  <a href="//href" itemprop="url">…</a>
</div>

В этом примере какой-то другой элемент имеет свойство url, и его значением является элемент Product:

<a href="//href" itemprop="url" itemscope itemtype="http://schema.org/Product">…</a>

(Примечание для последнего случая: значение url равно Product item, а не URL в атрибуте href! Так что это, вероятно, не имеет смысла для свойства url.)

person unor    schedule 19.02.2014

Нет, для этого вам не нужна другая оболочка. Вы можете указать itemprop="url" для тега a.

Этот метод называется «вложенной областью».

Подробнее об этом см. в разделе 2.2 Основной синтаксис этой ссылки http://www.w3.org/TR/2011/WD-microdata-20110525/

person Toan Nguyen    schedule 19.02.2014
comment
На странице, на которую вы ссылаетесь, написано, что для добавления свойства к элементу атрибут itemprop используется для одного из потомков элемента.; не означает ли это, что я должен поместить свойство itemprop в потомка, а не в элемент, который содержит itemscope? - person YPCrumble; 19.02.2014
comment
@YPCrumble Нет, это не значит. Это означает, что после того, как вы определили свой тип элемента (который является вашим словарем) для элемента, вы можете поместить itemprop=value для дочерних элементов этого элемента. Рассмотрим itemtype = словарь вещей, а itemprop = запись в этом словаре. - person Toan Nguyen; 19.02.2014
comment
@Toan_Nguyen Я только что попробовал его при тестировании структурированных данных GWT, и оказалось, что вам нужно использовать дочерний элемент: google.com/webmasters/tools/ - person YPCrumble; 19.02.2014
comment
@YPCrumble Итак, в вашем случае itemprop=url принадлежит schema.org/Product? Если это так, то вам нужна обертка. Если itemprop=url принадлежит другой схеме (например, schema.org/Thing), вы определили в предке пункт, то вам не нужно. - person Toan Nguyen; 19.02.2014