Exemple HTML
<ul> <li><a href="#top">TOP</a></li> <li><a href="https://developer.mozilla.org">mozilla</a></li> <li><a href="https://example.com">example</a></li> <li><a href="https://www.yahoo.co.jp">yahoo</a></li></ul>Sélecteurs d’attribut de base
/* Préfixe : commence par "#" */a[href^="#"] { color: fuchsia;}
/* Suffixe : se termine par ".org" */a[href$=".org"] { color: orange;}
/* Correspondance partielle : contient "example" */a[href*="example"] { color: red;}
/* Condition combinée : commence par "https" et se termine par ".jp" */a[href^="https"][href$=".jp"] { color: green;}Liste des sélecteurs
| Sélecteur | Signification |
|---|---|
[attr] | L’attribut existe |
[attr="value"] | Correspondance exacte avec value |
[attr^="value"] | Commence par value |
[attr$="value"] | Se termine par value |
[attr*="value"] | Contient value |
Ignorer la casse (flag i)
Ajouter i à la fin pour ne pas distinguer majuscules et minuscules.
/* Correspond à ".pdf" comme à ".PDF" */a[href$=".pdf" i]::after { content: " (PDF)";}Combinaison avec :not()
/* Cible uniquement les liens externes (http/https) */a[href^="http"]::after { content: " ↗";}
/* Exclut les liens internes (#) */a[href^="http"]:not([href*="example.com"])::after { content: " ↗";}Exemple pratique : icônes par type de fichier
/* Ajouter un libellé aux liens PDF */a[href$=".pdf" i]::after { content: " [PDF]"; font-size: 0.75em; color: #c00;}
/* Icône flèche pour les liens externes */a[href^="https://"]:not([href^="https://example.com"])::after { content: " ↗";}
/* Pas de style pour les liens d'ancrage */a[href^="#"] { text-decoration: none;}Spécificité
La spécificité d’un sélecteur d’attribut est identique à celle d’un sélecteur de classe : (0, 1, 0).
a[href^="#"] { } /* (0, 1, 0) — équivalent à une classe */a.internal { } /* (0, 1, 1) — classe + élément, celui-ci l'emporte */
hsb.horse