Почему я должен добавлять свои пользовательские атрибуты к «data-»? - PullRequest
12 голосов
/ 16 марта 2010

Так что любой пользовательский атрибут данных, который я использую, должен начинаться с «data -»:

<li class="user" data-name="John Resig" data-city="Boston"
     data-lang="js" data-food="Bacon">
  <b>John says:</b> <span>Hello, how are you?</span>
</li>

Случится ли что-нибудь плохое, если я просто проигнорирую это? I.e.:

<li class="user" name="John Resig" city="Boston"
     lang="js" food="Bacon">
  <b>John says:</b> <span>Hello, how are you?</span>
</li>

Полагаю, одна плохая вещь заключается в том, что мои пользовательские атрибуты могут конфликтовать с атрибутами HTML со специальным значением (например, name), но, кроме этого, есть проблема с простым написанием «example_text» вместо «data-example_text» «? (Это не будет подтверждено, но кого это волнует?)

Ответы [ 2 ]

17 голосов
/ 16 марта 2010

Есть несколько преимуществ для сохранения пользовательских атрибутов с префиксом данных - *.

  1. Это гарантирует, что в будущих выпусках не будет никаких столкновений с расширениями HTML. Эта проблема уже встречалась в некоторой степени с некоторыми новыми атрибутами, введенными в HTML5, где существующие сайты использовали атрибуты с одинаковыми именами и ожидали различного и несовместимого пользовательского поведения. (например, известно, что атрибут required в элементах input в прошлом имел некоторые конфликты на некоторых популярных веб-сайтах)

  2. Для доступа к этим атрибутам из сценариев существует удобный DOM API, HTMLElement.dataset . Теперь поддерживается в большинстве браузеров .

  3. Они обеспечивают четкое указание того, какие атрибуты являются пользовательскими, а какие - стандартизированными. Это не только помогает валидаторам, позволяя им разрешать любые атрибуты с данными- *, в то же время выполняя полезную проверку ошибок для других атрибутов (например, для выявления опечаток), но также помогает сделать этот аспект исходного кода более понятным для тех, кто его читает, включая людей кто может работать на сайте после оригинального автора.

4 голосов
/ 16 марта 2010

По словам Джона Резига , цель добавления этих пользовательских атрибутов данных в набор HTML5 состоит в том, чтобы позволить встраивать пользовательские данные в HTML , оставаясь при этом действительным .

Если вас не волнует проверка (и, как вы сказали, ваши пользовательские атрибуты не конфликтуют с существующими атрибутами HTML, такими как name, id, style и т. Д.), То, вероятно, вы не не нужно использовать префикс data-. Но учитывая, что это не огромные затраты на написание корректного, совместимого кода, я не понимаю, почему вы бы этого не сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...