itemprop глобальный атрибут HTML
Глобальный глобальный атрибут itemprop используется для добавления свойств к элементу. У каждого элемента HTML можно указать атрибут itemprop, а элемент itemprop состоит из пары «имя — значение». Каждая пара «имя — значение» называется свойством, а одна или несколько таких пар образуют элемент. Значения свойств — это строка или URL-адрес; их можно связывать с очень широким набором элементов, включая <audio>, <embed>, <iframe>, <img>, <link>, <object>, <source>, <track> и <video>.
Примеры
В примере ниже показан исходный код набора элементов с атрибутами itemprop, а затем таблица с полученными структурированными данными.
HTML
<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>
Структурированные данные
| Элемент | ||
|---|---|---|
| имя itemprop | значение itemprop | |
| itemprop | name | Avatar |
| itemprop | director | James Cameron |
| itemprop | genre | Science fiction |
| itemprop | trailer | ../movies/avatar-theatrical-trailer.html |
Свойства
Значениями свойств могут быть строка или URL-адрес. Если строковое значение представляет собой URL-адрес, он указывается с помощью элемента <a> и его атрибута href, элемента <img> и его атрибута src либо других элементов, ссылающихся на внешние ресурсы или встраивающих их.
Три свойства со строковыми значениями
<div itemscope> <p>My name is <span itemprop="name">Neil</span>.</p> <p>My band is called <span itemprop="band">Four Parts Water</span>.</p> <p>I am <span itemprop="nationality">British</span>.</p> </div>
Одно свойство «image» со значением в виде URL-адреса
<div itemscope> <img itemprop="image" src="google-logo.png" alt="Google" /> </div>
Если строковое значение сложно прочитать и понять человеку (например, это длинная последовательность цифр и букв), его можно отображать с помощью атрибута value элемента data, а более понятную человеку версию поместить в содержимое элемента (оно не является частью структурированных данных — см. пример ниже).
Элемент со свойством, значение которого — идентификатор товара
Идентификатор неудобен для восприятия человеком, поэтому вместо него используется название товара.
<h1 itemscope> <data itemprop="product-id" value="9678AOU879">The Instigator 2000</data> </h1>
Для числовых данных можно использовать элемент meter и его атрибут value.
Элемент meter
<div itemscope itemtype="http://schema.org/Product">
<span itemprop="name">Panasonic White 60L Refrigerator</span>
<img src="panasonic-fridge-60l-white.jpg" alt="" />
<div
itemprop="aggregateRating"
itemscope
itemtype="http://schema.org/AggregateRating">
<meter itemprop="ratingValue" min="0" value="3.5" max="5">
Rated 3.5/5
</meter>
(based on <span itemprop="reviewCount">11</span>
customer reviews)
</div>
</div>
Аналогично, для данных, связанных с датой и временем, можно использовать элемент time и его атрибут datetime.
Элемент с одним свойством «birthday», значение которого — дата
<div itemscope> I was born on <time itemprop="birthday" datetime="1984-05-10">May 10th 1984</time>. </div>
Свойства также могут представлять собой группы пар «имя — значение»: для этого элементу, объявляющему свойство, нужно задать атрибут itemscope. Каждое значение представляет собой либо строку, либо группу пар «имя — значение» (то есть элемент).
Внешний элемент, представляющий человека, и вложенный элемент, представляющий музыкальную группу
<div itemscope>
<p>Name: <span itemprop="name">Amanda</span></p>
<p>
Band:
<span itemprop="band" itemscope>
<span itemprop="name">Jazz Band</span>
(<span itemprop="size">12</span> players)
</span>
</p>
</div>
У внешнего элемента выше два свойства: «name» и «band». Значение свойства «name» — «Amanda», а «band» — самостоятельный элемент с двумя свойствами: «name» и «size». Значение свойства «name» музыкальной группы — «Jazz Band», а значение свойства «size» — «12». Внешний элемент в этом примере — это микроданные верхнего уровня. Элементы, не входящие в состав других элементов, называются микроданными верхнего уровня.
Все свойства отделены от своих элементов
Этот пример совпадает с предыдущим, но все свойства отделены от своих элементов.
<div itemscope id="amanda" itemref="a b"></div> <p id="a">Name: <span itemprop="name">Amanda</span></p> <div id="b" itemprop="band" itemscope itemref="c"></div> <div id="c"> <p>Band: <span itemprop="name">Jazz Band</span></p> <p>Size: <span itemprop="size">12</span> players</p> </div>
В результате получается то же, что и в предыдущем примере. У первого элемента два свойства: «name» со значением «Amanda» и «band» со значением, равным другому элементу. У второго элемента также два свойства: «name» со значением «Jazz Band» и «size» со значением «12».
У элемента может быть несколько свойств с одинаковым именем и разными значениями.
Мороженое с двумя вкусами
<div itemscope>
<p>Flavors in my favorite ice cream:</p>
<ul>
<li itemprop="flavor">Lemon sorbet</li>
<li itemprop="flavor">Apricot sorbet</li>
</ul>
</div>
В результате получается элемент с двумя свойствами, у каждого из которых имя «flavor», а значения — «Lemon sorbet» и «Apricot sorbet».
Элемент, вводящий свойство, может также вводить сразу несколько свойств. Это позволяет избежать дублирования, если некоторые свойства имеют одинаковое значение.
Элемент с двумя свойствами — «favorite-color» и «favorite-fruit», оба со значением «orange»
<div itemscope>
<span
itemprop="favorite-color
favorite-fruit"
>orange
</span>
</div>
Примечание: Между микроданными и содержимым документа, в котором они размечены, нет никакой взаимосвязи.
Одинаковые структурированные данные, размеченные двумя разными способами
Между следующими двумя примерами нет семантической разницы.
<figure>
<img src="castle.jpeg" />
<figcaption>
<span itemscope><span itemprop="name">The Castle</span></span> (1986)
</figcaption>
</figure>
<span itemscope><meta itemprop="name" content="The Castle" /></span> <figure> <img src="castle.jpeg" /> <figcaption>The Castle (1986)</figcaption> </figure>
В обоих примерах есть figure с подписью, а также никак не связанный с figure элемент с парой «имя — значение», где имя — «name», а значение — «The Castle». Разница лишь в том, что если пользователь перетащит figcaption из документа, элемент будет включён в данные перетаскивания. Изображение, связанное с элементом, включено не будет.
Имена и значения
Свойство — это неупорядоченный набор уникальных токенов с учётом регистра, представляющих пары «имя — значение». Значение свойства должно содержать как минимум один токен. В примере ниже каждая ячейка данных представляет собой токен.
Примеры имён
| Элемент | ||
|---|---|---|
| itemprop имя | itemprop значение | |
| itemprop | country | Ireland |
| itemprop | Option | 2 |
| itemprop | https://www.flickr.com/photos/nlireland/6992065114/ | Ring of Kerry |
| itemprop | img | https://www.flickr.com/photos/nlireland/6992065114/ |
| itemprop | website | flickr |
| itemprop | (токен) | (токен) |
Токены — это строки или URL-адреса. Элемент называется типизированным элементом, если он представляет собой URL-адрес. В противном случае это строка. Строки не могут содержать точку или двоеточие (см. ниже).
-
Если элемент типизированный, он должен быть одним из следующих:
- определённое имя свойства;
- допустимый URL-адрес, указывающий на определение словаря;
- допустимый URL-адрес, используемый в качестве имени собственного свойства элемента (то есть не определённого в общедоступной спецификации);
-
Если элемент не типизированный, он должен быть:
- строкой, не содержащей символов
.(U+002E FULL STOP) и:(U+003A COLON), которая используется в качестве имени собственного свойства элемента (то есть не определённого в общедоступной спецификации).
- строкой, не содержащей символов
Примечание: Приведённые выше правила запрещают использовать символы «:» в значениях, не являющихся URL-адресами, поскольку иначе их нельзя было бы отличить от URL-адресов. Значения с символами «.» зарезервированы для будущих расширений. Символы пробела запрещены, поскольку иначе значения разбирались бы как несколько токенов.
Значение
Значение свойства в паре «имя — значение» определяется по первому подходящему случаю из следующего списка:
-
Если у элемента есть атрибут
itemscope- Значение — это элемент, созданный этим элементом
-
Если элемент — это элемент
meta- Значение — это значение атрибута
contentэлемента
- Значение — это значение атрибута
-
Если элемент — это элемент
audio,embed,iframe,img,source,trackилиvideo- Значение — это строка URL-адреса, полученная при разборе значения атрибута src элемента относительно документа узла (части API DOM микроданных) элемента на момент установки атрибута
-
Если элемент — это элемент
a,areaилиlink- Значение — это строка URL-адреса, полученная при разборе значения атрибута href элемента относительно документа узла элемента на момент установки атрибута
-
Если элемент — это элемент
object- Значение — это строка URL-адреса, полученная при разборе значения атрибута data элемента относительно документа узла элемента на момент установки атрибута
-
Если элемент — это элемент
data- Значение — это значение атрибута value элемента
-
Если элемент — это элемент
meter- Значение — это значение атрибута
valueэлемента
- Значение — это значение атрибута
-
Если элемент — это элемент
time- Значение — это значение
datetimeэлемента
- Значение — это значение
В противном случае
- Значение — это textContent элемента.
Если значение свойства — это URL, свойство необходимо указывать с помощью элемента свойства URL-адреса. К элементам свойств URL-адресов относятся элементы a, area, audio, embed, iframe, img, link, object, source, track и video.
Порядок имён
Порядок имён относительно друг друга не имеет значения, однако если у определённого имени несколько значений, они следуют в заданном порядке.
В следующем примере у свойства «a» значения «1» и «2» именно в таком порядке, но не имеет значения, стоит ли свойство «a» перед свойством «b».
<div itemscope> <p itemprop="a">1</p> <p itemprop="a">2</p> <p itemprop="b">test</p> </div>
Вот несколько равнозначных примеров:
<div itemscope> <p itemprop="b">test</p> <p itemprop="a">1</p> <p itemprop="a">2</p> </div>
<div itemscope> <p itemprop="a">1</p> <p itemprop="b">test</p> <p itemprop="a">2</p> </div>
<div id="x"> <p itemprop="a">1</p> </div> <div itemscope itemref="x"> <p itemprop="b">test</p> <p itemprop="a">2</p> </div>
Представление структурированных данных о книге
В этом примере атрибуты микроданных используются для представления следующих структурированных данных:
| itemscope | itemtype: itemid | https://schema.org/Book: urn:isbn:0-374-22848-5 | |
| itemprop | title | Owls of the Eastern Ice | |
| itemprop | author | Jonathan C Slaght | |
| itemprop | datePublished | 2020-08-04 | |
HTML
<dl
itemscope
itemtype="https://schema.org/Book"
itemid="urn:isbn:0-374-22848-5<">
<dt>Title</dt>
<dd itemprop="title">Owls of the Eastern Ice</dd>
<dt>Author</dt>
<dd itemprop="author">Jonathan C Slaght</dd>
<dt>Publication date</dt>
<dd>
<time itemprop="datePublished" datetime="2020-08-04">August 4 2020</time>
</dd>
</dl>
Результат
Спецификации
| Спецификация |
|---|
| HTML> # names:-the-itemprop-attribute> |
См. также
- Другие глобальные атрибуты
- Другие глобальные атрибуты, связанные с микроданными:
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop