Menu

Attributs HTML : syntaxe, class, id, data-* et booléens

Les attributs ajoutent des informations à un élément HTML : la destination d'un lien, ce que montre une image, la classe CSS qui s'applique. Découvrez la syntaxe, les attributs globaux acceptés par tous les éléments, class et id, les attributs booléens et les attributs data-*.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

Ce que sont les attributs HTML

Un attribut ajoute une information à un élément. Il se place dans la balise ouvrante et s'écrit avec un nom, un signe égal et une valeur entre guillemets : name="value". Un élément peut avoir autant d'attributs que nécessaire, séparés par des espaces.

href indique au lien où aller, src et alt décrivent l'image, type, placeholder et required configurent le champ. Chaque élément a son propre jeu d'attributs, et quelques-uns (les attributs globaux ci-dessous) fonctionnent sur tous les éléments.

Règles de syntaxe

<input type="text" name="city" value="Paris" disabled>
  • Nom, signe égal, valeur entre guillemets. Les guillemets doubles sont la convention ; les simples marchent aussi (title='Say "hi"' permet de mettre un guillemet double dans une valeur).
  • Les noms sont insensibles à la casse. CLASS et class sont le même attribut. Les valeurs, non : class="Box" et class="box" sont deux classes différentes.
  • Les guillemets sont facultatifs sans espaces, mais mettez-en quand même. class=big box donne à l'élément la classe big et un second attribut sans aucun sens appelé box.
  • L'ordre ne compte pas. <img alt="" src="a.png"> équivaut à <img src="a.png" alt="">.
  • Chaque nom une seule fois par élément. Si un attribut apparaît deux fois, le navigateur garde le premier et ignore le second sans rien dire.

Attributs booléens

Certains attributs sont activés ou désactivés. Pour eux, la présence signifie vrai, et la valeur est ignorée. disabled, checked, required, readonly, hidden, multiple, autofocus et open fonctionnent tous ainsi.

Le troisième bouton est désactivé alors que la valeur dit false, car le navigateur vérifie seulement si l'attribut est présent. Pour désactiver un attribut booléen, supprimez-le. En JavaScript, button.disabled = false fait exactement cela.

L'attribut class

class donne à un élément un ou plusieurs noms que le CSS et le JavaScript utilisent pour le trouver. Plusieurs éléments peuvent partager une classe, et un élément peut avoir plusieurs classes séparées par des espaces :

Chaque classe supplémentaire ajoute ses règles par-dessus. En CSS, une classe se sélectionne avec un point (.card) ; en JavaScript, element.classList.add('featured') et classList.remove les modifient. Les classes sont le moyen normal de mettre en forme : la plupart de votre CSS ciblera des classes.

L'attribut id

id donne à un élément un nom qui doit être unique sur la page. Utilisez-le quand vous avez besoin d'exactement un élément : la cible d'un lien, un <label for> ou document.getElementById.

Cliquer sur le label met le focus sur le champ, car for="email" pointe vers id="email". Le lien fait défiler jusqu'à #pricing car le fragment du href correspond à l'id.

classid
Combien d'éléments peuvent le partagerAutant que vous voulezUn seul (unique)
Valeurs par élémentPlusieurs, séparées par des espacesUne
Sélecteur CSS.name#name
Usage typiqueMettre en forme des groupes d'élémentsCibles de liens, labels, un élément précis en JavaScript

Un id ne peut pas contenir d'espaces. Commencez-le par une lettre pour qu'il reste simple à utiliser en CSS : #2col n'est pas un sélecteur CSS valide sans échappement.

Attributs globaux

Ces attributs fonctionnent sur n'importe quel élément :

AttributRôle
idNom unique de l'élément
classListe de noms de classes séparés par des espaces
styleCSS en ligne, comme style="color: red"
titleTexte d'infobulle affiché au survol
langLangue du contenu, comme lang="fr"
dirSens du texte : ltr, rtl ou auto
hiddenMasque l'élément (booléen)
tabindexRend un élément atteignable avec Tab, ou fixe son ordre
contenteditablePermet à l'utilisateur de modifier le texte de l'élément
data-*Vos propres données, lues en JavaScript

L'attribut lang a sa propre page car il influence les lecteurs d'écran, la traduction et la recherche.

Les attributs data-*

Quand vous devez stocker votre propre valeur sur un élément, préfixez le nom par data-. N'importe quel nom convient après le préfixe, et le JavaScript lit les valeurs via element.dataset, les tirets étant convertis en camelCase :

data-product-id devient dataset.productId. Les valeurs reviennent toujours sous forme de chaînes, donc convertissez-les avec Number() avant de calculer. Le CSS peut aussi les sélectionner : [data-price="4.50"].

Erreurs fréquentes

  • Écrire class deux fois. <div class="a" class="b"> ne garde que a. Mettez les deux dans un seul attribut : class="a b".
  • Réutiliser un id. Deux éléments avec le même id cassent les liens d'ancre (#links), les labels et getElementById, qui ne renvoie que le premier. Utilisez une classe pour tout ce qui se répète.
  • disabled="false" ou checked="false". L'attribut est toujours présent, donc toujours actif. Supprimez-le plutôt.
  • Valeurs sans guillemets avec des espaces. alt=My photo donne à alt la valeur My. Mettez chaque valeur entre guillemets.
  • Inventer des attributs sans data-. <div price="4"> est du HTML invalide et peut entrer en conflit avec un futur attribut standard. Utilisez data-price.

Questions fréquentes

Qu'est-ce qu'un attribut HTML ?

Un attribut est une information supplémentaire écrite dans une balise ouvrante sous la forme name="value". Il configure l'élément : href définit la destination d'un lien, src et alt décrivent une image, class et id permettent au CSS et au JavaScript de trouver l'élément.

Quelle est la différence entre class et id en HTML ?

Un id doit être unique sur la page et identifie un seul élément, pour les liens #fragment, <label for> et getElementById. Une class peut être partagée par plusieurs éléments, et un élément peut avoir plusieurs classes séparées par des espaces. Utilisez les classes pour le style.

Comment ajouter plusieurs classes à un élément HTML ?

Mettez-les dans un seul attribut class, séparées par des espaces : <div class="card featured dark">. Écrire class deux fois ne marche pas : le navigateur ne garde que le premier.

Les attributs HTML ont-ils besoin de guillemets ?

Les guillemets sont facultatifs quand la valeur n'a ni espace ni caractère spécial, mais mettre toujours des guillemets est l'habitude la plus sûre. class=big box donne à l'élément la classe big et un attribut distinct nommé box.

Pourquoi mon bouton reste désactivé avec disabled="false" ?

disabled est un attribut booléen : sa présence signifie vrai, quelle que soit la valeur. Pour activer l'élément, supprimez l'attribut, ou exécutez button.disabled = false en JavaScript, ce qui le supprime.

Puis-je inventer mes propres attributs HTML ?

Utilisez le préfixe data- : data-price="12" ou data-user-id="7" sont valides sur n'importe quel élément et lisibles en JavaScript via element.dataset. Les noms inventés sans ce préfixe sont du HTML invalide.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER