chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式


Posted in Javascript onOctober 09, 2015

一、发现该问题的原因-是在写账号登录页面时,input表单添加了背景图片,当自动填充,搓搓的一坨淡黄色背景出来。

这个原因是我草率的直接设置在input元素里面,结果问题就来了。所以如果把这个图标放在input表单外面,就不会出现这个问题。

二、表单自动填充会添加浏览器默认样式怎么处理和避免

第二张图,就是表单自动填充后,chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性

input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
 background-color: rgb(250, 255, 189); /* #FAFFBD; */
 background-image: none;
 color: rgb(0, 0, 0);
}

看到这里添加上这段代码,我会想到使用样式覆盖的方法解决。我完全可以使用!important去提升优先级。但是有个问题,加!important不能覆盖原有的背景、字体颜色,除了chrome默认定义background-color,background-images,color不能使用

!important提升优先级,其他属性均可使用它来提升优先级。

input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
 background-color: #FFFFFF;
 background-image: none;
 color: #333;
 /* -webkit-text-fill-color: red; //这个私有属性是有效的 */
}
input:-webkit-autofill:hover {
 /* style code */
}
input:-webkit-autofill:focus {
 /* style code */
}

思路有两个,1、通过打补丁,修复bug。2、关闭浏览器自带填充表单功能

情景一:input文本框是纯色背景的

解决办法:

input:-webkit-autofill {
 -webkit-box-shadow: 0 0 0px 1000px white inset;
 -webkit-text-fill-color: #333;
}

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

解决办法:

if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0)
{
 var _interval = window.setInterval(function () {
 var autofills = $('input:-webkit-autofill');
 if (autofills.length > 0) {
  window.clearInterval(_interval); // 停止轮询
  autofills.each(function() {
  var clone = $(this).clone(true, true);
  $(this).after(clone).remove();
  });
 }
 }, 20);
}

先判断是否是chrome,如果是,则遍历input:-webkit-autofill元素,再通过取值,附加,移除等操作来实现。 这个方法没效果!!

所以最后我是不使用图标作为input表单的背景图片,而是多写一个标签,把图标拿到表单外面来。

思路二: 关闭浏览器自带填充表单功能

设置表单属性 autocomplete="off/on" 关闭自动填充表单,自己实现记住密码

<!-- 对整个表单设置 -->
<form autocomplete="off" method=".." action="..">
<!-- 或对单一元素设置 -->
<input type="text" name="textboxname" autocomplete="off">

如图:未自动填充前,此时这个邮箱的小图标是inpu表单的背景图片

chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式

如图:填充后,邮箱小图标被浏览器默认样式覆盖掉

chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式

最后,

如果不想多去处理chrome浏览器下表单自动填充出现的添加默认样式,那就把这个小小的图标放到表单外面吧,我这个因为是input框

只有border-bottom,如果这个input框有边框,那么可能需要使用一个div的边框的来假装成input框的边框,然后input框弄成是没有边框的。

像这样的input框

chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式

通过以上方法成功帮朋友解决浏览器自动添加默认样式问题,小伙伴们可以放心参考此文。

Javascript 相关文章推荐
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
May 18 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
JS实现FLASH幻灯片图片切换效果的方法
Mar 04 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
Mar 16 Javascript
JavaScript 语句之常用 for 循环详解
Mar 29 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 #Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 #Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 #Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 #Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 #Javascript
jQuery实现连续动画效果实例分析
Oct 09 #Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
Oct 09 #Javascript
You might like
基于initPHP的框架介绍
2013/04/18 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
angular2使用简单介绍
2016/03/01 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
解密Python中的描述符(descriptor)
2015/06/03 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
python 字典操作提取key,value的方法
2019/06/26 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
python热力图实现简单方法
2021/01/29 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
社团活动总结模板
2014/06/30 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
早安问候语大全
2015/11/10 职场文书
R9700摩机记
2022/04/05 无线电