logo noucode

Utiliser les attributs data-* pour des interactions avancées

02/09/2026

Écrit par Johanny

HTML

ncode_level

1 vues

Utiliser les attributs data-* pour des interactions avancées
Sommaire

Pour enrichir vos interfaces web sans alourdir votre code, utiliser les attributs data-* pour des interactions avancées est une technique incontournable en HTML5.

Le HTML5 a introduit une fonctionnalité puissante permettant aux développeurs de stocker des informations personnalisées directement dans les balises : les attributs de données. Savoir utiliser les attributs data-* pour des interactions avancées transforme la manière dont vous liez votre structure HTML à vos scripts JavaScript et vos styles CSS.

Pourquoi utiliser les attributs personnalisés ?

Avant l’arrivée du HTML5, les développeurs devaient souvent détourner l’usage d’attributs existants pour stocker des métadonnées liées à un élément. Cela rendait le code sémantiquement incorrect et difficile à maintenir.

Les attributs personnalisés résolvent ce problème en offrant un espace dédié au stockage de données côté client. Ils sont parfaits pour conserver des identifiants de base de données, des états d’interface ou des paramètres de configuration directement accessibles par le navigateur.

Ne stockez jamais d’informations sensibles (comme des mots de passe ou des jetons de sécurité) dans ces attributs, car ils sont visibles par n’importe quel utilisateur inspectant le code source de la page.

Les règles de syntaxe en HTML

La création de ces attributs obéit à des règles strictes. Le nom de l’attribut doit obligatoirement commencer par data-, suivi d’au moins un caractère en minuscules. Les espaces ne sont pas autorisés.

<article data-id="42" data-category="tutoriel" data-read-time="5">
    <h3>Titre de l'article</h3>
    </article>

Styliser les éléments via CSS

L’un des grands avantages de cette technique est la possibilité de cibler ces attributs en CSS. Vous pouvez modifier l’apparence d’un élément selon la valeur de sa donnée, ou même afficher cette valeur grâce à la fonction attr().

/* Ciblage par attribut */

article[data-category="tutoriel"] {
    border-left: 4px solid blue;
    }
/* Affichage du contenu de l'attribut */

article::after {
    content: "Temps de lecture : " attr(data-read-time) " min";
    font-size: 0.8rem;
    color: gray;
    }

Manipuler les données en JavaScript avec dataset

C’est en JavaScript que l’on exploite le plein potentiel de ces attributs. L’API DOM propose la propriété dataset, qui permet de lire et d’écrire ces valeurs de manière très intuitive.

Attention à la conversion des noms : un attribut nommé data-read-time en HTML deviendra readTime (en camelCase) dans l’objet dataset.

const article = document.querySelector('article');

// Lecture des données
const id = article.dataset.id;
console.log(id); // Affiche "42"

// Modification et ajout de données

article.dataset.readTime = "10";
article.dataset.newStatus = "published";

Cas pratique : Un système de filtrage

Voici comment utiliser les attributs data-* pour des interactions avancées dans le cadre d’un système de filtrage de galerie d’images.

<div class="filters">
    <button data-filter="all">Tout</button>
        <button data-filter="nature">Nature</button>
            <button data-filter="tech">Technologie</button>
            </div>
            
            <div class="gallery">
                <img src="foret.jpg" data-category="nature" alt="Forêt">
                    <img src="ordi.jpg" data-category="tech" alt="Ordinateur">
                    </div>
const buttons = document.querySelectorAll('button[data-filter]');
const images = document.querySelectorAll('.gallery img');

buttons.forEach(button => {
    button.addEventListener('click', () => {
            const filter = button.dataset.filter;                
            images.forEach(img => {
            if (filter === 'all' || img.dataset.category === filter) {
                            img.style.display = 'block';
                            } else {
                            img.style.display = 'none';
                             }
                         });
              });
                });

Conclusion

Les attributs personnalisés constituent un pont élégant et performant entre votre structure HTML, votre design CSS et votre logique JavaScript. Que ce soit pour gérer des états, stocker des identifiants ou créer des composants dynamiques, utiliser les attributs data-* pour des interactions avancées vous permet d’écrire un code plus propre, plus modulaire et plus facile à maintenir.

Cet article t'a plu ?

Ajoute le premier commentaire
0 Commentaires
Le plus récent
Le plus ancien Le plus populaire

Rechercher sur le site: