Sur un formulaire sur lequel je travaille, Chrome remplit automatiquement les champs e-mail et mot de passe. C'est bien, cependant, Chrome change la couleur d'arrière-plan en une couleur jaune pâle.
La conception sur laquelle je travaille utilise du texte clair sur un fond sombre, donc cela gâche vraiment l'apparence du formulaire - j'ai des boîtes jaunes nettes et du texte blanc presque invisible. Une fois le champ focalisé, les champs reviennent à la normale.
Est-il possible d'empêcher Chrome de changer la couleur de ces champs?
autocomplete
input
google-chrome
Chèvre mécontente
la source
la source
Réponses:
Cela fonctionne très bien, vous pouvez modifier les styles de zone de saisie ainsi que les styles de texte à l'intérieur de la zone de saisie:
Ici , vous pouvez utiliser toutes les couleurs , par exemple
white
,#DDD
,rgba(102, 163, 177, 0.45)
.Mais
transparent
ne fonctionnera pas ici.De plus, vous pouvez utiliser ceci pour changer la couleur du texte:
Conseil: n'utilisez pas un rayon de flou excessif par centaines ou en milliers. Cela n'a aucun avantage et pourrait mettre la charge du processeur sur les appareils mobiles plus faibles. (Également vrai pour les ombres extérieures réelles). Pour une boîte d'entrée normale d'une hauteur de 20 pixels, un «rayon de flou» de 30 pixels le couvrira parfaitement.
la source
:-internal-autofill-previewed
et les:-internal-autofill-selected
pseudoclasses au lieu de-webkit-autofill
... Mystérieusement, cependant,-webkit-autofill
fonctionne toujours. Personnellement, je n'en avais pas besoin!important
.Les solutions précédentes d'ajout d'une ombre de boîte fonctionnent bien pour les personnes qui ont besoin d'un arrière-plan de couleur unie. L'autre solution consistant à ajouter une transition fonctionne, mais le fait de devoir définir une durée / un délai signifie qu'à un moment donné, elle peut s'afficher à nouveau.
Ma solution consiste à utiliser des images clés à la place, de cette façon, elles afficheront toujours les couleurs de votre choix.
Exemple de Codepen: https://codepen.io/-Steve-/pen/dwgxPB
la source
color: inherit
J'ai une meilleure solution.
Définir l'arrière-plan sur une autre couleur comme ci-dessous n'a pas résolu le problème pour moi car j'avais besoin d'un champ de saisie transparent
J'ai donc essayé d'autres choses et j'ai trouvé ceci:
la source
-webkit-text-fill-color: yellow !important;
couleur du texte.display
. Fiddle - Check it outtransition-duration
ridiculement haut, il serait préférable de le régler à latransition-delay
place. De cette façon, vous réduisez encore plus la possibilité de changements de couleurs.transition
hack ne fonctionnera que si l'entrée n'est pas remplie automatiquement avec une entrée par défaut enregistrée par le navigateur, sinon le fond jaune sera toujours là.background-color
ne fonctionne-t-il pas? Chrome doit résoudre ce problème !!C'est ma solution, j'ai utilisé la transition et le délai de transition, donc je peux avoir un fond transparent sur mes champs de saisie.
la source
box-shadow
validation existante"color 9999s ease-out, background-color 9999s ease-out";
exprssion n'est pas valide. J'ai alors utilisé du code,-webkit-transition: background-color 9999s ease-out;
et-webkit-text-fill-color: #fff !important;
box-shadow
validation existante ? Dans mon cas, en raison de cette règle css, mon ombre de boîte rouge personnalisée (qui indique une erreur de saisie) est retardée, ce qui fait croire à l'utilisateur que la dernière entrée est invalide alors qu'en fait elle est bonne.Cela a été conçu car ce comportement de coloration provient de WebKit. Il permet à l'utilisateur de comprendre que les données ont été préremplies. Bug 1334
Vous pouvez désactiver la saisie semi-automatique en faisant (ou sur le contrôle de formulaire spécifique:
Ou vous pouvez changer la couleur de la saisie automatique en procédant comme suit:
Remarque, un bug est suivi pour que cela fonctionne à nouveau: http://code.google.com/p/chromium/issues/detail?id=46543
Il s'agit d'un comportement WebKit.
la source
!important
et (b) est ciblée avec un ID pour une spécificité plus élevée. Il semble que Chrome va toujours le remplacer. La suppression de la saisie semi-automatique semble fonctionner, mais ce n'est vraiment pas ce que je veux faire.autocomplete="off"
soulèvera certainement des problèmes d'accessibilité. Pourquoi cette réponse est-elle marquée comme correcte de toute façon?Une solution de contournement possible pour le moment est de définir une ombre intérieure "forte":
la source
essayez ceci pour masquer le style de remplissage automatique
la source
Toutes les réponses ci-dessus ont fonctionné mais ont eu leurs défauts. Le code ci-dessous est une fusion de deux des réponses ci-dessus qui fonctionne parfaitement sans clignoter.
la source
TOUPET
la source
Après 2 heures de recherche, il semble que Google remplace toujours la couleur jaune, mais je cherche le correctif. C'est vrai. cela fonctionnera également pour le vol stationnaire, la concentration, etc. tout ce que vous avez à faire est d'ajouter!
cela supprimera complètement le jaune des champs de saisie
la source
L'ajout d'un délai d'une heure mettrait en pause toutes les modifications CSS sur l'élément d'entrée.
C'est mieux que d'ajouter une animation de transition ou une ombre intérieure.
la source
De plus:
Vous pouvez également ajouter
Sinon, lorsque vous cliquez sur l'entrée, la couleur jaune reviendra. Pour le focus, si vous utilisez le bootstrap, la deuxième partie est pour la bordure surlignant 0 0 8px rgba (82, 168, 236, 0.6);
Telle qu'elle ressemblera à n'importe quelle entrée bootstrap.
la source
J'ai eu un problème où je ne pouvais pas utiliser box-shadow parce que j'avais besoin que le champ de saisie soit transparent. C'est un peu un hack mais du CSS pur. Réglez la transition sur une durée très longue.
la source
transition-duration
ridiculement haut, il serait préférable de le régler à latransition-delay
place. De cette façon, vous réduisez encore plus la possibilité de changements de couleurs.Essayez ceci: Identique à la réponse @ Nathan-white ci - dessus avec des ajustements mineurs.
la source
Si vous souhaitez conserver la fonctionnalité de saisie semi-automatique intacte, vous pouvez utiliser un peu de jQuery pour supprimer le style de Chrome. J'ai écrit un court article à ce sujet ici: http://www.benjaminmiles.com/2010/11/22/fixing-google-chromes-yellow-autocomplete-styles-with-jquery/
la source
J'ai développé une autre solution en utilisant JavaScript sans JQuery. Si vous trouvez cela utile ou décidez de republier ma solution, je vous demande seulement d'indiquer mon nom. Prendre plaisir. - Daniel Fairweather
Ce code est basé sur le fait que Google Chrome supprime le style Webkit dès que du texte supplémentaire est entré. Changer simplement la valeur du champ de saisie ne suffit pas, Chrome veut un événement. En nous concentrant sur chaque champ de saisie (texte, mot de passe), nous pouvons envoyer un événement clavier (la lettre «a»), puis définir la valeur du texte à son état précédent (le texte rempli automatiquement). Gardez à l'esprit que ce code s'exécutera dans tous les navigateurs et vérifiera chaque champ de saisie de la page Web, ajustez-le en fonction de vos besoins.
la source
J'ai une solution CSS pure qui utilise des filtres CSS.
Le filtre en niveaux de gris remplace le jaune par le gris, puis la luminosité supprime le gris.
VOIR CODEPEN
la source
Cela fonctionnera pour l'entrée, la zone de texte et la sélection dans les états normal, survol, focus et actif.
Voici la version SCSS de la solution ci-dessus pour ceux qui travaillent avec SASS / SCSS.
la source
Pour ceux qui utilisent Compass:
la source
J'abandonne!
Puisqu'il n'y a aucun moyen de changer la couleur de l'entrée avec la saisie semi-automatique, je décide de les désactiver tous avec jQuery pour les navigateurs webkit. Comme ça:
la source
J'ai une solution si vous voulez empêcher la saisie automatique de Google Chrome, mais c'est un peu "machette", supprimez simplement la classe que Google Chrome ajoute à ces champs de saisie et définissez la valeur sur "" si vous n'avez pas besoin d'afficher stocker les données après le chargement.
la source
La solution de Daniel Fairweather ( Suppression de la couleur d'arrière-plan d'entrée pour la saisie semi-automatique de Chrome? ) (J'adorerais voter pour sa solution, mais j'ai encore besoin de 15 répétitions) fonctionne vraiment bien. Il y a une énorme différence avec la solution la plus votée: vous pouvez conserver les images d'arrière-plan! Mais une petite modification (juste une vérification Chrome)
Et vous devez garder à l'esprit, cela ne fonctionne que sur les champs visibles !
Donc, si vous utilisez $ .show () pour votre formulaire, vous devez exécuter ce code après l'événement show ()
Ma solution complète (j'ai un bouton afficher / masquer pour le formulaire de connexion):
Désolé encore, je préférerais que ce soit un commentaire.
Si vous le souhaitez, je peux mettre un lien vers le site où je l'ai utilisé.
la source
et cela a fonctionné pour moi (testé Chrome 76)
la source
J'ai essayé presque toutes les solutions ci-dessus. Rien ne fonctionne pour moi. Enfin travaillé avec cette solution. J'espère que quelqu'un l'aidera.
la source
Merci Benjamin!
La solution Mootools est un peu plus délicate, car je ne peux pas obtenir de champs en utilisant
$('input:-webkit-autofill')
, donc ce que j'ai utilisé est le suivant:la source
Aucune des solutions n'a fonctionné pour moi, l'ombre incrustée ne fonctionnera pas pour moi car les entrées ont un fond translucide superposé sur le fond de la page.
Je me suis donc demandé: "Comment Chrome détermine-t-il ce qui doit être rempli automatiquement sur une page donnée?"
"Cherche-t-il les ID d'entrée, les noms d'entrée? ID de formulaire? Action de formulaire?"
Grâce à mon expérimentation avec le nom d'utilisateur et les entrées de mot de passe, je n'ai trouvé que deux façons qui empêcheraient Chrome de trouver les champs qui devraient être remplis automatiquement:
1) Mettez la saisie du mot de passe avant la saisie de texte. 2) Donnez-leur le même nom et identifiant ... ou aucun nom et identifiant.
Après le chargement de la page, avec javascript, vous pouvez soit modifier dynamiquement l'ordre des entrées sur la page, soit leur donner dynamiquement leur nom et leur identifiant ...
Et Chrome ne sait pas ce qui l'a frappé ... la saisie semi-automatique est interrompue!
Hack fou, je sais. Mais ça marche pour moi.
Chrome 34.0.1847.116, OSX 10.7.5
la source
Malheureusement, strictement aucune des solutions ci-dessus n'a fonctionné pour moi en 2016 (quelques années après la question)
Voici donc la solution agressive que j'utilise:
Fondamentalement, il supprime la balise lors de l'enregistrement de la valeur, la recrée, puis remet la valeur.
la source
j'utilise cela. travaille pour moi. retirer le fond jaune du champ.
la source
Comme mentionné précédemment, l'encart -webkit-box-shadow pour moi fonctionne mieux.
Également un extrait de code pour changer la couleur du texte:
la source
Cela a fonctionné pour moi:
la source