Mémo · Chapitre 4
Les deux donnent un nom à un élément HTML, pour pouvoir le cibler en CSS ou en JavaScript. La différence tient en une règle : une classe se partage, un identifiant est unique dans la page.
| Classe | Identifiant | |
|---|---|---|
| Dans le HTML | class="tarif" | id="panier" |
| Dans le CSS | .tarif { … } avec un point | #panier { … } avec un dièse |
| Combien d'éléments ? | Autant que vous voulez | Un seul par page |
| Plusieurs sur un élément ? | Oui, séparées par une espace : class="carte promo" | Non, un seul identifiant |
| En JavaScript | document.querySelectorAll(".tarif") | document.getElementById("panier") |
| À utiliser pour | Un style qui se répète : boutons, cartes, prix | Un repère unique : le menu, un formulaire, une ancre #contact |
La spécificité
Le navigateur donne un poids à chaque sélecteur. La règle la plus lourde l'emporte, où qu'elle soit écrite dans le fichier. À poids égal, c'est la dernière écrite qui gagne.
#solde : le plus fort des trois.
.alerte : bat n'importe quel nombre de balises.
p : le plus faible.
Exemple : le texte s'affiche en vert
#solde { color: green; } /* 1 · 0 · 0 : gagne, même écrite avant */
.alerte { color: red; } /* 0 · 1 · 0 */
À éviter
tarif { color: white; } /* cherche une balise <tarif> */
.tarif { color: white; } /* correct */
<p class=".tarif"> <!-- faux --> <p class="tarif"> <!-- correct -->
<p id="prix">20 $</p> <p id="prix">35 $</p> <!-- faux : prenez une classe -->
<div class="carte" class="promo"> <!-- le 2e est ignoré --> <div class="carte promo"> <!-- correct -->
Dix exercices au chapitre 4 : pour chaque notion, un modèle à recopier à la main, puis un exercice à faire vous-même.
Ouvrir l'atelier web