Подтвердить что ты не робот

Неправильная практика добавления дополнительных атрибутов в элементы html?

Иногда я добавляю атрибут к некоторым элементам управления. Как:

<a href id="myLlink" isClimber="True">Chris Sharma</a>

Я знаю, что это не действительный html. Но это помогает мне в некоторых случаях.

Это считается плохой практикой? Мой друг говорит, что это нормально для среды интрасети, но в Интернете он не может быть дружественным поисковыми системами.

Если это не хорошая практика, то какая из лучших практик?

Спасибо

4b9b3361

Ответ 1

Да. Это считается плохой практикой. Ваш HTML (если он 4.0) не будет успешно проверен. Вместо этого добавьте такой класс:

<a href id="myLlink" class="climber" >...</a>

Помните, что вы можете иметь несколько классов:

<a href id="myLlink" class="climber girl pretty" >...</a>

И вы можете использовать CSS или JQuery для выбора материала на основе этих классов и выборочного переопределения стиля на основе комбинаций:

a.climber             { color: brown; }
a.climber.girl        { color: red; }
a.climber.girl.pretty { color: pink; }

Ответ 2

Если вы используете HTML5 doctype, вы можете добавить данные attrbutes, которые действительны.

Значит, что-то вроде следующего будет

<a href id="myLlink" data-isClimber="True">Chris Sharma</a>

Ответ 3

Это не лучшая и не лучшая практика.

Я думаю, вам нужно это для обработки JavaScript. Обычно я решаю проблему, добавляя специальный атрибут "class" с префиксом "js".

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

Ответ 4

Это недействительный XHTML, который является плохим - в основном потому, что вы не можете показать с действительным XHTML;) Каждый основной браузер и поисковая система будет игнорировать дополнительные атрибуты. Вы можете добавить дополнительное пространство имен, чтобы снова сделать свой XHTML.

<html xmlns:my="http://example.com">
  <!-- SNIP -->
  <a href id="myLlink" my:isClimber="True">Chris Sharma</a>
  <!-- SNIP -->
</html>

Это совершенно правильный XHTML. Однако W3C Validator все равно откажется его проверять (я думаю). Это недостаток их синтаксического анализа XML. Для таких парсеров, не поддерживающих пространство имен, my:isClimber по-прежнему будет обрабатываться как isClimber. Но теперь вы можете успокоиться, так как знаете, что это действительно XML и, наконец, то, что считается, не так ли?)

Ответ 5

Используя jquery,

для хранения: $('# element_id'). data ('extra_tag', 'extra_info');

для извлечения: $('# element_id'). data ('extra_tag');

Это также было опубликовано @[http://stackoverflow.com/a/16985773/2458978] [1]

[1]: Как хранить произвольные данные для некоторых HTML-тегов

Ответ 6

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

Более приятной альтернативой было бы хранение данных по-разному, например, функции data() jQuery.