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 相关文章推荐
js escape,unescape解决中文乱码问题的方法
May 26 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
javascript基于prototype实现类似OOP继承的方法
Dec 16 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
May 10 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
JS百度地图搜索悬浮窗功能
Jan 12 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
vue中实现图片和文件上传的示例代码
Mar 16 Javascript
js常用正则表达式集锦
May 17 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
Sep 06 Javascript
JavaScript 判断浏览器是否是IE
Feb 19 Javascript
JavaScript继承的三种方法实例
May 12 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
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
理解javascript async的用法
2017/08/22 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
python使用matplotlib库生成随机漫步图
2018/08/27 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python英语单词测试小程序代码实例
2019/09/09 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
两道JAVA笔试题
2016/09/14 面试题
简历自荐信
2013/12/02 职场文书
请假条范文大全
2014/04/10 职场文书
《菜园里》教学反思
2014/04/17 职场文书
物业管理工作方案
2014/05/10 职场文书
个人党性分析总结
2015/03/05 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python