Puis-je créer des attributs sur mes balises HTML?

Dois-je ajouter tous les attributs que je souhaite aux balises HTML afin de pouvoir récupérer leur valeur plus tard en utilisant javascript? Par exemple:

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

Si cela ne fonctionne pas, comment allez-vous conserver des informations arbitraires comme celle-ci?

Edit: Comme il semble que la fabrication des attributs HTML n'est pas techniquement valide, j'ai reformulé la deuxième partie de cette question dans sa propre question ici: Comment stocker des données arbitraires pour certaines balises HTML

En HTML5, oui. Il suffit de les préfixer avec les data- . Voir la spécification .

Bien sûr, cela implique que vous devriez utiliser le doctype HTML5 ( <!doctype html> ), même si les navigateurs ne se soucient pas.

Eh bien, vous pouvez toujours créer votre propre DTD pour obtenir de nouveaux attributs valides pour vos balises. Le navigateur ne sera pas un problème, vous devriez tester votre JavaScript si vous pouvez accéder à ces attributs personnalisés. Ou vous pouvez utiliser les installations existantes fournies par HTML et CSS. Vous pouvez utiliser plusieurs classes comme

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

Pour la sélection des couleurs, je vous désactive fortement d'utiliser des noms de couleurs codés dans votre code HTML, vous disposez de CSS pour déclarer des styles. Utilisez l'attribut class comme un crochet pour la déclaration CSS, et choisissez les noms de classes sémantiques , par exemple

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

Et dans votre code JavaScript, vous pouvez générer des éléments avec des classes comme "long-tooltip" et "common-tooltip" au lieu de "yellow-tooltip", donc vous ne vous contredirez pas en cas de redessiner la page pour avoir des info-bulles vertes.

Vous pouvez. La page ne passera pas la vérification, mais la plupart des navigateurs l'accepteront.

C'est certainement la mauvaise façon de le faire. Essayez d'utiliser class = "hasTooltip_yes tipcolour_yellow"

Selon les informations que vous souhaitez stocker, vous devriez regarder certains des autres attributs disponibles. Ceux-ci ne ressemblent pas à de bons candidats, mais «rel» a été utilisé pour beaucoup de choses intéressantes.