Pseudo-classe CSS :focus
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La pseudo-classe CSS :focus permet de cibler un élément lorsque celui-ci reçoit la sélection (soit il est sélectionné à l'aide du clavier, soit il est activé avec la souris comme par exemple le champ d'un formulaire).
Exemple interactif
label {
display: block;
margin-top: 1em;
}
input:focus {
background-color: lightblue;
}
select:focus {
background-color: ivory;
}
<p>Quelle saveur souhaitez-vous commander ?</p>
<label>Nom complet : <input name="firstName" type="text" /></label>
<label
>Saveur :
<select name="flavor">
<option>Cerise</option>
<option>Thé vert</option>
<option>Vanille et beurre salé</option>
<option>Pépites de menthe</option>
</select>
</label>
Note :
Cette pseudo-classe s'applique uniquement à l'élément ayant la sélection lui-même. Utilisez :focus-within si vous souhaitez sélectionner un élément qui contient un élément ayant la sélection.
Syntaxe
:focus {
/*… */
}
Accessibilité
Il faut s'assurer que l'indicateur visuel de sélection puisse être vu par des personnes ayant une vision faible. Cela peut d'autant plus bénéficier aux personnes qui consultent le document dans un endroit fortement éclairé (dehors au soleil par exemple). La recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast (angl.) nécessite un contraste minimum de 3 à 1.
- Indicateurs visuels de sélection accessibles : Conseils sur la conception d'indicateurs utiles et utilisables (angl.)
:focus { outline: none; }
Il ne faut jamais retirer l'indicateur de sélection sans le remplacer par un autre indicateur qui respecte la recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast (angl.) :
Exemples
HTML
<input class="prenom" value="Rouge si sélectionné" />
<input class="nom" value="Bleu si sélectionné" />
CSS
.prenom:focus {
background: yellow;
color: red;
}
.nom:focus {
background: yellow;
color: blue;
}
Résultat
Spécifications
| Spécification |
|---|
| HTML # selector-focus |
| Selectors Level 4 # focus-pseudo |
Compatibilité des navigateurs
Voir aussi
- La pseudo-classe
:focus-visible - La pseudo-classe
:focus-within