La pseudo-classe :empty
correspond à un élément qui n'a aucun enfant. Seules les feuilles de l'arbre et le texte (espaces inclus) sont pris en compte. Les commentaires n'ont pas d'influence sur le contenu de l'élément (autrement dit, si un élément ne contient que des commentaires, il sera considéré comme vide).
/* Cible tous les éléments <div> qui */ /* n'ont pas de contenu */ div:empty { background: lime; }
Syntaxe
:empty
Exemples
CSS
body { display: flex; justify-content: space-around; } .box { background: red; height: 100px; width: 100px; } .box:empty { background: blue; }
HTML
<div class="box"><!-- Je serai bleu. --></div> <div class="box">Je serai rouge.</div> <div class="box"> <!-- Je serais rouge à cause des espaces autours du commentaire --> </div>
Résultat
Accessibilité
Les technologies assistives tels que les lecteurs d'écran ne peut pas analyser un contenu interactif vide. Tout contenu interactif doit avoir un nom accessible, fourni sous la frome d'une valeur textuelle via l'élément parent du contrôle (<a>
, <button>
, etc.). Les noms accessibles pemettent d'exposer le contrôle interactif au sein de l'arbre d'accessibilité, une API communiquant des informations qui peuvent être utilisées par les technologies assistives.
Le texte fournissant le nom accessible peut être masqué grâce à des propriétés afin de le retirer visuellement mais de le conserver pour les technologies assistives. Cette méthode est généralement utilisé pour les boutons utilisant une simple icône comme indication.
- Qu'est-ce qu'un nom accessible ? The Paciello Group (en anglais)
- Hidden content for better a11y (en anglais)
- Comprendre les règles WCAG 2.4
- Understanding Success Criterion 2.4.4 (en anglais)
Spécifications
Spécification | État | Commentaires |
---|---|---|
Selectors Level 4 La définition de ':empty' dans cette spécification. |
Version de travail | Aucune modification. |
Selectors Level 3 La définition de ':empty' dans cette spécification. |
Recommendation | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Support simple | 1 | Oui | 1 | 9 | 9.5 | 3.1 |
Fonctionnalité | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
---|---|---|---|---|---|---|---|
Support simple | 2.1 | ? | Oui | 4 | 10 | 3.1 | ? |