Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

:autofill

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis février 2023.

La pseudo-classe CSS :autofill correspond à un élément <input> lorsque sa valeur est remplie automatiquement par le navigateur. La classe cesse la correspondance si l'utilisateur·ice modifie le champ.

Exemple interactif

label {
  display: block;
  margin-top: 1em;
}

input:is(:-webkit-autofill, :autofill) {
  border: 3px solid darkorange;
}
<form>
  <p>
    Cliquez sur la zone de texte et choisissez l'une des options proposées par
    votre navigateur.
  </p>

  <label for="name">Nom</label>
  <input id="name" name="name" type="text" autocomplete="name" />

  <label for="email">Adresse e-mail</label>
  <input id="email" name="email" type="email" autocomplete="email" />

  <label for="country">Pays</label>
  <input id="country" name="country" type="text" autocomplete="country-name" />
</form>

Note : Les feuilles de style des agents utilisateurs de nombreux navigateurs utilisent !important dans leurs déclarations de style :-webkit-autofill, ce qui les rend impossibles à remplacer par des pages web sans recourir à des hacks JavaScript. Par exemple, Chrome a ce qui suit dans sa feuille de style interne :

css
background-color: rgb(232 240 254) !important;
background-image: none !important;
color: -internal-light-dark(black, white) !important;

Cela signifie que vous ne pouvez pas définir background-color, background-image ou color dans vos propres règles.

Syntaxe

css
:autofill {
  /* ... */
}

Exemples

L'exemple suivant démontre l'utilisation de la pseudo-classe :autofill pour changer la bordure d'un champ de texte qui a été complété automatiquement par le navigateur. Pour garantir que nous ne créons pas une liste de sélecteurs invalide, à la fois :-webkit-autofill et :autofill sont associés à l'aide d'une liste de sélecteurs tolérante avec :is().

css
input {
  border-radius: 3px;
}

input:is(:-webkit-autofill, :autofill) {
  border: 3px dotted orange;
}
html
<form method="post" action="">
  <label for="email">E-mail</label>
  <input type="email" name="email" id="email" autocomplete="email" />
</form>

Spécifications

Specification
HTML
# selector-autofill
Selectors Level 4
# selectordef-autofill

Compatibilité des navigateurs

Voir aussi