Почему я должен предварительно ожидать свои пользовательские атрибуты с “данными -”?

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

<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>

Что-нибудь плохо произойдет, если я просто проигнорирую это? Т.е.:

<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" вместо "данных-example_text"? (Это не проверит, но кто заботится?)

14
задан Asaprab 18 October 2017 в 06:53
поделиться

2 ответа

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

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

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

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

17
ответ дан 1 December 2019 в 12:52
поделиться

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

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

4
ответ дан 1 December 2019 в 12:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: