Действительно ли это - плохая практика для добавления дополнительных атрибутов к элементам HTML?

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

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

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

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

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

Спасибо

18
задан Maroun 25 March 2018 в 13:11
поделиться

5 ответов

Да. Это считается плохой практикой. Ваш 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; }
9
ответ дан 30 November 2019 в 07:38
поделиться

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

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

-2
ответ дан 30 November 2019 в 07:38
поделиться

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

Так что что-то вроде следующего будет действительным

<a href id="myLlink" data-isClimber="True">Chris Sharma</a>
22
ответ дан 30 November 2019 в 07:38
поделиться

Это недействительный 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, а это, в конце концов, самое главное, не так ли ;)

.
2
ответ дан 30 November 2019 в 07:38
поделиться

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

Полагаю, вам это нужно для какой-то обработки javascript. Я обычно решаю проблему, добавляя пользовательский атрибут "class" с префиксом 'js'.

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

3
ответ дан 30 November 2019 в 07:38
поделиться
Другие вопросы по тегам:

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