Могу ли я просто создавать атрибуты в своих тегах HTML?

Мне разрешено добавлять любые атрибуты, которые я хочу использовать для HTML-тегов, чтобы впоследствии получить их значение с помощью javascript? Например:

<a href="something.html" hastooltip="yes" tipcolour="yellow">...</a>

Если это не сработает, как вы можете хранить произвольные фрагменты такой информации?

Изменить:. Поскольку кажется, что составление HTML-атрибутов не является технически обоснованным, я перефразировал вторую часть этого вопроса на свой собственный вопрос здесь: Как хранить произвольные данные для некоторых HTML-тегов

Ответ 1

В HTML5 да. Вам просто нужно прикрепить их к data-. См. спецификацию.

Конечно, это подразумевает, что вы должны использовать doctype HTML5 (<!doctype html>), даже если браузеру все равно.

Ответ 2

Ну, вы всегда можете создать свой собственный DTD, чтобы получить новые допустимые атрибуты для ваших тегов. Браузер не будет икать, вы должны проверить свой JavaScript, если вы можете получить доступ к этим пользовательским атрибутам. Или вы можете использовать существующие средства, предоставляемые HTML и CSS. Вы можете использовать несколько классов, например

<a href="..." class="class-one class-two has-tooltip">

Для выбора цвета я настоятельно рекомендую вам использовать жестко закодированные имена цветов в вашем HTML, у вас есть CSS для объявления стилей. Используйте атрибут класса как крючок для объявления CSS и выберите семантические имена классов, например

HTML:

<a href="..." class="has-tooltip common-tooltip">
<a href="..." class="has-tooltip long-tooltip">

CSS

a.has-tooltip {
   colour: red;
}
a.common-tooltip {
   background: #ddd;
}
a.long-tooltip {
   background: #ebf;
}

И в вашем JavaScript-коде вы можете генерировать элементы с такими типами, как "long-tooltip" и "common-tooltip" вместо "yellow-tooltip", поэтому вы не будете противоречить себе в случае перепроектирования страницы на зеленый всплывающие подсказки.

Ответ 3

Вы можете. Страница не пройдет проверку, однако большинство браузеров ее примет.

Это почти наверняка неправильный способ сделать это. Попробуйте использовать class= "hasTooltip_yes tipcolour_yellow"

Ответ 4

В зависимости от информации, которую вы хотите сохранить, вы должны посмотреть на некоторые другие доступные атрибуты. Они не похожи на хороших кандидатов, но "rel" используется для многих интересных вещей.