Suppression de l'entrée de la couleur de fond pour Chrome saisie semi-automatique?
Sur un formulaire sur lequel je travaille, Chrome est auto-remplissage de l'e-mail et le mot de passe dans les champs. C'est très bien, cependant, Chrome, modifie la couleur d'arrière-plan de couleur jaune pâle.
Le design je suis sur l'aide de texte clair sur un fond sombre, donc cela a vraiment crée l'allure de la forme - j'ai stark boîtes jaunes et quasi-invisible du texte blanc. Une fois que le champ est concentré, les champs de retour à la normale.
Est-il possible d'arrêter de Chrome de changer la couleur de ces champs?
- Ici vous avez des informations plus étendues: stackoverflow.com/questions/2338102/...
- Voir ma réponse à un autre post: stackoverflow.com/a/13691346/336235
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne bien, Vous pouvez changer la zone de saisie de styles ainsi que des styles de texte à l'intérieur de l'entrée de la boîte :
Ici, vous pouvez utiliser n'importe quelle couleur par exemple
white
,#DDD
,rgba(102, 163, 177, 0.45)
.Mais
transparent
ne marchera pas ici.En outre, vous pouvez l'utiliser pour changer la couleur du texte:
Conseils: N'utilisez pas un excès de rayon de flou dans les centaines ou les milliers. Cela n'a pas d'avantages et risque de mettre la charge des processeurs les plus faibles sur les appareils mobiles. (Vrai aussi pour les réels, à l'extérieur des ombres). Pour une zone de saisie de 20px de hauteur, 30px ‘rayon de flou’ sera parfaitement couvrir.
-webkit-text-fill-color: #838B95 !important;
-webkit-box-shadow: 0 0 0px 1000px white inset;
n'a pas fonctionné pour moi, il serait encore changer bg de couleur jaune lorsque j'ai cliqué sur l'entrée. J'ai ajouté!important
et maintenant ça fonctionne.rgba(0, 0, 0, 0)
?0 0 0 30px white inset
input:-webkit-autofill { -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 100px white inset!important; -webkit-transition:none; }
-webkit-box-shadow
pour-webkit-autofill
ne semble pas s'appliquer pour moi que de Chrome 63 (janvier 2018),-webkit-text-fill-color
ettransition
fonctionne très bien. Quelqu'un d'autre peut confirmer?-webkit-box-shadow
propriété chrome donne aussi une "valeur de propriété non Valide" erreurinput:-webkit-autofill { caret-color: white; }
!important;
pour le premier exemple de code. Mais je vous remercie!:-internal-autofill-previewed
et:-internal-autofill-selected
pseudoclasses au lieu de-webkit-autofill
... Mystérieusement cependant,-webkit-autofill
fonctionne toujours. Personnellement, je n'ai pas besoin de la!important
.Les solutions précédentes de l'ajout d'un box-shadow fonctionne bien pour les gens qui ont besoin d'un solide de couleur d'arrière-plan. L'autre solution de l'ajout d'une transition œuvres, mais d'avoir à définir une durée/délai signifie que, à un certain point, il peut montrer de nouveau.
Ma solution est d'utiliser les images clés au lieu de cela, de cette façon, il sera toujours montrer les couleurs de votre choix.
Exemple Codepen: https://codepen.io/-Steve-/pen/dwgxPB
input {...}
au lieu deinput:-webkit-autofill {...}
pour qu'il fonctionne parfaitement.!important
.-webkit-appearance: none
.to { color: inherit, background: inherit }
J'ai une meilleure solution.
Réglage de l'arrière-plan d'une autre couleur comme ci-dessous ne permettent pas de résoudre le problème pour moi parce que j'avais besoin d'un transparent champ de saisie
J'ai donc essayé d'autres choses et j'ai trouvé ceci:
-webkit-text-fill-color: yellow !important;
pour la couleur du texte.display
. Violon - Check it outtransition-duration
ridiculement élevé, il est préférable de définir latransition-delay
à la place. De cette façon, vous réduire encore la possibilité de tout changement dans les couleurs.transition
hack fonctionne uniquement si l'entrée n'est pas auto-rempli avec une entrée par défaut enregistrés par le navigateur, sinon le fond jaune) sera toujours là.background-color
pas de travail? Chrome doit corriger cela!!input:-webkit-autofill { transition: all 0s 50000s; }
de reporter tous les changements de style deC'est ma solution, j'ai utilisé de la transition et de la transition de retard donc je peux avoir un fond transparent sur mes champs de saisie.
box-shadow
pour la validation"color 9999s ease-out, background-color 9999s ease-out";
n'est pas valide exprssion. J'ai utilisé le code,-webkit-transition: background-color 9999s ease-out;
et-webkit-text-fill-color: #fff !important;
Ce qui a été conçu depuis ce coloris comportement a été de WebKit. Il permet à l'utilisateur de comprendre les données ont été pré-rempli. Bug 1334
Vous pourriez désactiver la saisie semi-automatique en train de faire (ou sur la forme spécifique de contrôle:
Ou vous pouvez changer la couleur de remplissage automatique par:
Remarque, il y a un bug en cours de suivi pour que cela fonctionne de nouveau: http://code.google.com/p/chromium/issues/detail?id=46543
C'est un WebKit comportement.
!important
et (b) ciblée avec un ID pour une plus grande spécificité. Il ressemble à Chrome va toujours pour le remplacer. Suppression de la saisie semi-automatique n'a l'air de fonctionner, mais c'est vraiment pas ce que je veux faire.autocomplete="off"
va certainement soulever des questions d'accessibilité. Pourquoi est-ce une réponse comme correcte de toute façon?Une solution possible pour le moment est de définir une "forte" à l'intérieur de l'ombre:
essayez ceci pour masquer la saisie automatique de style
Toutes les réponses ci-dessus, a travaillé mais n'ont leurs défauts. Le code ci-dessous est issu de la fusion de deux des réponses ci-dessus, qui fonctionne parfaitement avec aucun clignotement.
SASS
Après 2 heures de recherche, il semble encore google remplace la couleur jaune, mais j'ai la solution pour elle. C'est le droit. il va travailler pour le hover, focus, etc ainsi. tout ce que vous avez à faire est d'ajouter !important pour elle.
cela permettra de supprimer complètement jaune à partir de champs de saisie
Si vous souhaitez conserver la fonctionnalité de saisie semi-automatique intact, vous pouvez utiliser un peu de jQuery pour supprimer de google Chrome style. J'ai écrit un post à ce sujet ici:
http://www.benjaminmiles.com/2010/11/22/fixing-google-chromes-yellow-autocomplete-styles-with-jquery/
En plus de cela:
Vous pouvez également ajouter des
D'autres sages, lorsque vous cliquez sur l'entrée, la couleur jaune va revenir.
Pour le focus, si vous êtes en utilisant bootstrap, la deuxième partie est de la frontière, en soulignant 0 0 8px rgba(82, 168, 236, 0.6);
Tel qu'il vient de ressembler à tout le bootstrap d'entrée.
J'ai eu un problème où je ne pouvais pas utiliser box-shadow parce que j'avais besoin de le champ de saisie à être transparent. C'est un peu un hack mais pur CSS. Définir la transition vers une très longue période de temps.
transition-duration
ridiculement élevé, il est préférable de définir latransition-delay
à la place. De cette façon, vous réduire encore la possibilité de tout changement dans les couleurs.Essayez ceci:
Même chose que @Nathan-blanc réponse ci-dessus, avec des modifications mineures.
color
prop!J'ai développé une autre solution à l'aide de JavaScript sans JQuery. Si vous trouvez cela utile ou décider de re-poster ma solution, je vous demande seulement inclure mon nom. Profitez de. – Daniel Fairweather
Ce code est basé sur le fait que Google Chrome supprime le Webkit de style dès que le texte additionnel est entré. Il suffit de changer le champ de saisie de la valeur ne suffit pas, Chrome veut un événement. En se concentrant sur chaque champ de saisie (texte, mot de passe), nous pouvons envoyer un événement de clavier (la lettre "a"), puis définissez la valeur de texte à son état précédent (l'auto-texte rempli). Gardez à l'esprit que ce code sera exécuté dans tous les navigateurs et vérifiera chaque champ de saisie dans la page web, de l'ajuster en fonction de vos besoins.
L'ajout d'une heure de retard pause css changements sur l'élément d'entrée.
C'est plus mieux plutôt que d'ajouter de la transition de l'animation ou de l'intérieur de l'ombre.
Pour ceux qui sont à l'aide de la Boussole:
J'ai un pur CSS solution qui utilise les Filtres CSS.
Les niveaux de gris filtre remplace le jaune à gris, puis la luminosité supprime le gris.
VOIR CODEPEN
J'abandonne!
Car il n'y a aucun moyen de changer la couleur de la saisie avec saisie semi-automatique j'ai décider de désactiver tous les d'eux avec jQuery pour les navigateurs webkit. Comme ceci:
J'ai une solution si vous souhaitez empêcher le remplissage automatique de google chrome mais c'est un peu "machette" , il suffit de retirer la classe que google chrome ajoute à ces entrées de champs et de définir la valeur "" si vous n'avez pas besoin de montrer stocker des données après la charge.
La solution de Daniel Fairweather (Suppression de l'entrée de la couleur de fond pour Chrome saisie semi-automatique?) (j'aimerais upvote sa solution, mais encore besoin de 15 rep) fonctionne vraiment bien. Il y a vraiment une énorme différence avec la plupart des upvoted solution : vous pouvez garder des images de fond ! Mais un peu de modification (juste Chrome vérifier)
Et que vous devez garder à l'esprit, il fonctionne UNIQUEMENT visible sur le champs !
De sorte que vous si vous êtes en utilisant $.show() pour votre formulaire, vous devez exécuter ce code Après le show() événement
Ma complète de la solution (j'ai un afficher/masquer les boutons de formulaire de connexion ):
Désolé encore une fois, je préfère que ce soit un commentaire.
Si vous le souhaitez, je peux mettre un lien vers le site où je l'ai utilisé.
Merci Benjamin!
La Mootools solution est un peu plus compliqué, car je ne peux pas obtenir des champs à l'aide d'
$('input:-webkit-autofill')
, Donc ce que j'ai utilisé est le suivant:Aucune des solutions n'a fonctionné pour moi, le médaillon de l'ombre ne fonctionne pas pour moi, car les entrées ont un translucide arrière-plan incrusté sur le fond de la page.
Alors je me suis demandé, "Comment est-Chrome déterminer ce qui devrait être remplis automatiquement sur une page donnée?"
"Est-il pour l'entrée id, noms d'entrée? La forme id? Forme d'action?"
Par le biais de mon expérimentation avec le nom d'utilisateur et le mot de passe entrées, il n'y avait que deux façons j'ai trouvé que serait la cause de google Chrome pour ne pas être en mesure de trouver les champs doivent être remplis automatiquement:
1) Mettre le mot de passe d'entrée à l'avance de la saisie de texte. 2) leur Donner le même nom et l'id ... ou pas de nom et id.
Après le chargement de la page, avec javascript, vous pouvez soit modifier dynamiquement l'ordre des entrées sur la page, ou de manière dynamique leur donner leur nom et l'id ...
Et Chrome ne sais pas ce qui a frappé ... la saisie semi-automatique est cassé!
Fou hack, je sais. Mais il travaille pour moi.
Chrome 34.0.1847.116, OSX 10.7.5
Malheureusement strictement aucune des deux solutions n'a fonctionné pour moi en 2016 (quelques années après la question)
Alors, voici la solution agressive j'utilise:
Fondamentalement, il supprime la balise tout en économisant de la valeur, et recrée, puis remet la valeur.
Cela fonctionnera pour les input, textarea et select dans des conditions normales, hover, l'accent et les états actifs.
Ici est SCSS version de la solution ci-dessus pour ceux qui travaillent avec SASS/SCSS.
Comme mentionné avant, encart-webkit-box-shadow pour moi fonctionne le mieux.
Également extrait de code pour changer la couleur du texte:
Cela a fonctionné pour moi:
C'est la solution complexe pour cette tâche.
JS:
CSS:
HTML:
Simple, il suffit d'ajouter,
pour le champ mot de passe.
Google Chrome agent utilisateur empêcher les développeurs
CSS
, Donc pour changerautofill
de l'INTERFACE utilisateur doit utiliser une autre propriété comme celles-ci:Cela fonctionne pour moi.
.input:-webkit-autofill {transition: background-color 5000s ease-in-out 0s;}
je l'utilise. le travail pour moi.
supprimer fond jaune de champ.
Nous pouvons utiliser la
-webkit-autofill
pseudo-sélecteur de cibler les champs et le style comme bon nous semble. Le style par défaut n'affecte que la couleur d'arrière-plan, mais la plupart des autres propriétés s'appliquent ici, comme à la frontière et une taille de police. On peut même changer la couleur du texte à l'aide de-webkit-text-fill-color
qui est inclus dans l'extrait de code ci-dessous./* Changement de saisie semi-automatique des styles dans google Chrome*/
l'utiliser et vérifiez votre problème problème est résolu
Il pourrait être un peu tard mais pour l'avenir référent, il y a un CSS SEULE solution que Olly Hodgons montre ici
http://lostmonocle.com/post/1479126030/fixing-the-chrome-autocomplete-background-colour
Tout ce que vous avez à faire est d'ajouter un sélecteur de remplacer la valeur par défaut des champs d'entrée de réglage
Donc, utiliser à la place de
Quelque chose comme
ou
qui semble fonctionner très bien avec moi.
résurrection de fil à deux ans plus tard. im travaillant autour de cette question sur les jours et j'ai trouvé un truc tout simple pour l'empêcher de cet horrible fonctionnalité saisie semi-automatique:
il suffit d'ajouter une chaîne aléatoire de la forme de la cible comme
<form action="site.com/login.php?random=123213">
il fonctionne sur les dernières version de chrome 34.0.1847.137
mise à jour: si cela ne fonctionne pas, donnez étrange protocole à l'action comme
<form id="test" action="xxx://">
et de remplir plus tard avec du javascript:mise à jour 2: toujours des problèmes avec cela, j'ai décidé de supprimer complètement le
<form>
tag et les variables post via jquery. son plus facile.