:autofill
Baseline 2023Newly available
Since February 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die :autofill
CSS-Pseudoklasse wird verwendet, wenn ein <input>
-Element vom Browser automatisch ausgefüllt wurde. Die Klasse wird nicht mehr angewendet, wenn der Benutzer das Feld bearbeitet.
Probieren Sie es aus
label {
display: block;
margin-top: 1em;
}
input:is(:-webkit-autofill, :autofill) {
border: 3px solid darkorange;
}
<form>
<p>Click on the text box and choose any option suggested by your browser.</p>
<label for="name">Name</label>
<input id="name" name="name" type="text" autocomplete="name" />
<label for="email">Email Address</label>
<input id="email" name="email" type="email" autocomplete="email" />
<label for="country">Country</label>
<input id="country" name="country" type="text" autocomplete="country-name" />
</form>
Hinweis:
Die Benutzerschnittstellen-Stylesheets vieler Browser verwenden !important
in ihren :-webkit-autofill
-Stildeklarationen, wodurch diese nicht von Webseiten ohne JavaScript-Tricks überschrieben werden können. Zum Beispiel hat Chrome Folgendes in seinem internen Stylesheet:
background-color: rgb(232 240 254) !important;
background-image: none !important;
color: -internal-light-dark(black, white) !important;
Das bedeutet, dass Sie background-color
, background-image
oder color
in Ihren eigenen Regeln nicht festlegen können.
Syntax
:autofill {
/* ... */
}
Beispiele
Das folgende Beispiel zeigt die Verwendung der :autofill
-Pseudoklasse, um den Rahmen eines Textfelds zu ändern, das vom Browser automatisch ausgefüllt wurde.
Um sicherzustellen, dass wir keine ungültige Selektorliste erstellen, werden sowohl :-webkit-autofill
als auch :autofill
unter Verwendung einer toleranten Selektorliste mit :is()
zusammengeführt.
input {
border-radius: 3px;
}
input:is(:-webkit-autofill, :autofill) {
border: 3px dotted orange;
}
<form method="post" action="">
<label for="email">Email</label>
<input type="email" name="email" id="email" autocomplete="email" />
</form>
Spezifikationen
Specification |
---|
HTML # selector-autofill |
Selectors Level 4 # selectordef-autofill |
Browser-Kompatibilität
Siehe auch
- Chromium Issue 46543: Auto-filled input text box yellow background highlight cannot be turned off
- WebKit-Bug 66032: Allow site authors to override autofilled fields' colors.
- Mozilla-Bug 740979: implement
:-moz-autofill
pseudo-class on input elements with an autofilled value - User Interface Module Level 4: more selectors