Элемент-заполнитель для неаффилированных атрибутов данных HTML5?

У меня есть небольшой набор элементов структурированных данных, которые я хотел бы встроить в документ HTML. Данные используются некоторым JavaScript для взаимодействия со страницей, но в остальном они скрыты.

Я рассматривал возможность использования атрибутов данных HTML5, но не уверен, какой элемент лучше всего подходит для прикрепления случайных данных. Я подумал об использовании div элементов, например:

<div data-make="Ford"  data-model="Fusion"  data-year="2005"></div>
<div data-make="Chevy" data-model="Volt"    data-year="2010"></div>
<div data-make="Honda" data-model="Insight" data-year="2010"></div>

Это кладж, поскольку модель содержимого элемента div - это потоковое содержимое, которое рекомендует по крайней мере одного потомка. Я также подумал об использовании неупорядоченного списка, но это тоже кладж по той же причине, поскольку модель содержимого элемента li также является потоковым содержимым.

Я искал передовой опыт в отношении атрибутов данных HTML5, но, поскольку эти атрибуты относительно новые и пока не используются широко, информации доступно мало.

Есть ли другие рекомендации для элемента-заполнителя, к которому можно прикрепить атрибуты случайных данных? Или я все неправильно делаю? Использование чего-то вроде JSON кажется мне тяжелым для моих нужд ...


person Nathan Ryan    schedule 03.05.2011    source источник


Ответы (1)


Я считаю, что вы склонны слишком строго интерпретировать спецификацию html5. цитата из fc:

Это требование не является жестким.

так что вы можете цепляться за присвоение div элементов. если вы добавите уникальный класс css с атрибутом 'display:none' к своим фиктивным элементам, они не будут отображаться, что сделает сложность потокового контента спорной. если вам удобнее использовать фразовое содержание (pc ), используйте вместо них пустые span элементы.

в качестве альтернативы можно использовать тег meta:

<meta itemprop="data" content="dummy" data="..."/>

обратите внимание, что meta-теги разрешены в body документа html5 (meta). а атрибут itemprop (ip) необходим для использования в качестве универсального контейнера данных, согласно спецификациям, атрибут content не является строго обязательным - однако вы всегда можете прибегнуть к некоторой фиктивной строке.

надеюсь это поможет,

С уважением, Карстен

person collapsar    schedule 14.05.2011
comment
Я понимаю, что непустое содержимое потока - это скорее предложение, чем требование. Однако оба примера в спецификации предлагают пустое содержимое потока в качестве заполнителя для содержимого, которое будет динамически добавляться. Кроме того, спецификация не одобряет div элементы на практике, говоря, что они должны быть элементами последней инстанции (хотя я не согласен). - person Nathan Ryan; 15.05.2011
comment
Подход с использованием микроданных - интересный. Это будет работать, поскольку элементы meta с атрибутом itemprop могут использоваться везде, где разрешено фразовое содержание. Группы могут быть созданы путем добавления itemscope к общему родительскому элементу метаэлементов. К сожалению, API микроданных пока не поддерживается, что делает его менее удобным, чем data атрибуты. - person Nathan Ryan; 15.05.2011
comment
Решили, что лучше всего использовать микроданные с meta элементами. - person Nathan Ryan; 16.05.2011