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 相关文章推荐
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
JavaScript之IE的fireEvent方法详细解析
Nov 20 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
Feb 26 Javascript
ES6中如何使用Set和WeakSet
Mar 10 Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
Jun 13 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
Mar 22 Javascript
小程序实现展开/收起的效果示例
Sep 22 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
Layui Table js 模拟选中checkbox的例子
Sep 03 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
基于MySQL体系结构的分析
2013/05/02 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
全面了解js中的script标签
2016/07/04 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
移动端界面的适配
2017/01/11 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
python中的列表和元组区别分析
2020/12/30 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
房地产出纳岗位职责
2013/12/01 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
护士医德考评自我评价
2015/03/03 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
python语言中pandas字符串分割str.split()函数
2022/08/05 Python