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实时监听文本框状态的方法
Apr 26 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
浅谈jQuery中height与width
Jul 06 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
vue的diff算法知识点总结
Mar 29 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
Apr 04 Javascript
JavaScript的变量声明与声明提前用法实例分析
Nov 26 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 Javascript
OpenLayers3实现地图显示功能
Sep 25 Javascript
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
JS代码编译器Monaco使用方法
Jun 11 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
浅谈PHP的反射机制
2016/12/15 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
Maps Javascript
2007/01/22 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
python分割文件的常用方法
2014/11/01 Python
Django视图和URL配置详解
2018/01/31 Python
Django添加feeds功能的示例
2018/08/07 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
消防安全检查制度
2014/02/04 职场文书
市场部经理岗位职责
2014/04/10 职场文书
小学教师培训方案
2014/06/09 职场文书
民事授权委托书范文
2014/08/02 职场文书
委托书怎样写
2014/08/30 职场文书
介绍信范文大全
2015/05/07 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL