chrome表单自动填充导致input文本框背景变成偏黄色问题解决

chrome表单自动填充导致input文本框背景变成偏黄色问题解决

作者:佚名 字体:[增加 减小] 来源:互联网 时间:08-21 18:43:32我要评论

chrome表单自动填充后,input文本框的背景会变成偏黄色的,想必大家都会碰到这种情况吧,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性造成的,解决方法如下,感兴趣的朋友可以了解下

chrome表单自动填充后,input文本框的背景会变成偏黄色的,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式:

复制代码

代码如下:

input:-webkit-autofill { 
background-color: #FAFFBD; 
background-image: none; 
color: #000; 
}

在有些情况下,这个黄色的背景会影响到我们界面的效果,尤其是在我们给input文本框使用图片背景的时候,原来的圆角和边框都被覆盖了: 
 
情景一:input文本框是纯色背景的

可以对input:-webkit-autofill使用足够大的纯色内阴影来覆盖input输入框的黄色背景;如:

复制代码

代码如下:

input:-webkit-autofill { 
-webkit-box-shadow: 0 0 0px 1000px white inset; 
border: 1px solid #CCC!important; 
}

如果你有使用圆角等属性,或者发现输入框的长度高度不太对,可以对其进行调整,除了chrome默认定义的background-color,background-image,color不能用!important提升其优先级以外,其他的属性均可使用!important提升其优先级,如:

复制代码

代码如下:

input:-webkit-autofill { 
-webkit-box-shadow: 0 0 0px 1000px white inset; 
border: 1px solid #CCC!important; 
height: 27px!important; 
line-height: 27px!important; 
border-radius: 0 4px 4px 0; 
}

情景二:input文本框是使用图片背景的

这个比较麻烦,目前还没找到完美的解决方法,有两种选择: 
1、如果你的图片背景不太复杂,只有一些简单的内阴影,那个人觉得完全可以使用上面介绍的方法用足够大的纯色内阴影去覆盖掉黄色背景,此时只不过是没有了原来的内阴影效果罢了。 
2、如果你实在想留住原来的内阴影效果,那就只能牺牲chrome自动填充表单的功能,使用js去实现,例如:

复制代码

代码如下:

$(function() { 
if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) { 
$(window).load(function(){ 
$(‘ul input:not(input[type=submit])‘).each(function(){ 
var outHtml = this.outerHTML; 
$(this).append(outHtml); 
}); 
}); 

10.});

遍历的对象可能要根据你的需求去调整。如果你不想使用js,好吧,在form标签上直接关闭了表单的自动填充功能:autocomplete=”off”。

关于网上盛传的方法不奏效的一些测试

这个问题困扰了我挺长一段时间的,网上写的方法主要有2种:第一种是在样式里对input:-webkit-autofill重写background-color和color,使用!important提高其优先级。第二种是使用jquery,先判断是否是chrome,如果是,则遍历input:-webkit-autofill元素,再通过取值,附加,移除等操作来实现。

但是我测试发现,这两种方法都不凑效!不知道是随着chrome版本的升级,现在的chrome(27)已经不支持重写input:-webkit-autofill原有的属性,还是怎么回事。另外js也无法获取到chrome自动填充的表单的value值,所以网上盛传的使用jquery解决的方法也是不凑效,最多也就只能去掉黄色背景,而自动填充的value却被移除了。chrome自动填充的表单的value值是存在DocumentFragment里的div中的,如果有哪位童鞋知道怎么获取chrome自动填充的表单的value值,还请指教一下。

时间: 2024-12-27 10:36:11

chrome表单自动填充导致input文本框背景变成偏黄色问题解决的相关文章

chrome表单自动填充去掉input黄色背景解决方案

chrome表单自动填充后,input文本框的背景会变成偏黄色的,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式: input:-webkit-autofill { background-color: #FAFFBD; background-image: none; color: #000; } 在有些情况下,这个黄色的背景会影响到我们界面的效果,尤其是在我们给input文本框使用图片背景的时候,原来的圆角和边框

chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式。

参考blog来自 http://segmentfault.com/q/1010000000671971 chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式. 一.发现该问题的原因-是在写账号登录页面时,input表单添加了背景图片,当自动填充,搓搓的一坨淡黄色背景出来. 这个原因是我草率的直接设置在input元素里面,结果问题就来了.所以如果把这个图标放在input表单外面,就不会出现这个问题. 二.表单自动填充会添加浏览器默认样式怎么处理和避免 第二张图,就是表单自动填充后,

#-webkit-autofill##google#启用表单自动填充时,如果覆盖黄色背景

google和opera浏览器的表单自动填充后,输入框均会变成黄色背景,黑色字体.如下图. 这样的话会与网页的整体设计风格不一致,怎样自定义样式,来覆盖黄色背景. 首先来看看是什么导致的,右键查看元素样式: input:-webkit-autofill,textarea:-webkit-autofill, select:-webkit-autofill{ background-color: rgb(250, 255, 189); background-image: none; color: rg

#-webkit-autofill##google#启用表单自动填充时,如何覆盖黄色背景

#-webkit-autofill##google#启用表单自动填充时,如何覆盖黄色背景 google和opera浏览器的表单自动填充后,输入框均会变成黄色背景,黑色字体.如下图. 这样的话会与网页的整体设计风格不一致,怎样自定义样式,来覆盖黄色背景. 首先来看看是什么导致的,右键查看元素样式: input:-webkit-autofill,textarea:-webkit-autofill, select:-webkit-autofill{ rgb(250, 255, 189); backgr

解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题

如果我们把一个表单设置位 autofocus ,这时这个表单在获取焦点后就会产生淡黄色的背景,我们就是使用!important的方法也无法去除. 解决方法一: 取消设置input表单的autofocus属性 解决方法二:对于没有背景图片的元素,添加下面的代码: input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset; -webkit-text-fill-color: #333; } 解决方法三: 对于有背景图

用户登录记住用户名导致表单自动填充bug解决方法

最近做项目出现了一个极其讨厌的bug:在用户登录网站时,浏览器会自动提示是否记住密码,当选择记住密码时,正常浏览网页,会发现有那么几个input输入框会自动填充用户名,非常讨厌, 于是就觉得挺简单的一个bug,想了几种解决办法: 方法一:利用html5表单新增属性 autocomplete="off",刷新后尝试,并没有卵用: 方法二:利用js来控制,进入页面时,给input表单设置value为空,心想这下可以了吧,结果还是没毛用: 方法三:给input表单设置只读属性 readonl

防止表单自动填充用户名和密码

部分浏览器支持:autocomplete="off" 所以浏览器支持: 在会自动填充的from内加下面两家代码 <input style="display:none" type="text" name="fakeusernameremembered"/> <input style="display:none" type="password" name="fak

去除chome表单自动填充样式

CSS: input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active { /* 延迟动画 */ -webkit-transition-delay: 9999s; transition-delay: 9999s; -webkit-transition: color 9999s ease-out, background-color 9

设计一个含有一个表单的页面,并且在表单上放入一个文本框。编写程序,当鼠标在页面上移动时,鼠标的坐标将显示在这个文本框中。

<form id="form1"> <P><INPUT type="text" name="txtMousePosition" size="20"></P></form> <script type="text/javascript">document.onmousemove =function() { //当鼠标移动式获取当前x,y坐标