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

  一、发现该问题的原因-是在写账号登录页面时,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浏览器下表单自动填充出现的添加默认样式,那就把这个小小的图标放到表单外面吧,我这个因为是input框

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

  像这样的input框

(0)

相关推荐

  • Excel自动填充时怎么才能只让序号中间的某几位数递增

    excel是一款电子表格软件,它拥有直观的外形.优异的计算功能.然而,仍然有不少用户对于一些操作不太熟悉,他们问道:怎样才能在自动填充时怎么才能只让序号中间的某几位数递增?小编今天给大家分享解决这个问 ...

  • excel可以自动填充什么(表格自动填充怎么设置)

    趣污粉们,大家好我是向天歌的大毛又到了周一面基的时刻这周我一直在琢磨要讲什么比较好结果又想起一件不堪回首的往事还是这张表,当年领导让我给这个表从001开始编号(表问我领导为什么有这么奇怪的要求,你的领 ...

  • excel自动填充序列怎么用 自动填充序列使用教程详解

    excel是我们常用的办公软件,往往我们会用到自动填充序列功能,那么excel自动填充序列怎么用?下面小编带来自动填充序列使用教程详解,希望对大家有所帮助. 自动填充序列使用教程详解: 首先我们打开一 ...

  • excel根据日期自动填充颜色(表格自动填充颜色怎么设置)

    不管你现在用到用不到,看了就知道,绝对干货,值得收藏!如下图所示,给符合当天日期所在的列自动填充背景颜色背景颜色填充效果图以下图示是vba代码,很简单.需注意的是,代码 必须写在thisworkboo ...

  • 常见的表单控件有哪些(怎么添加表单控件)

    一.效果展示:二.实现步骤1)调出Excel中的开发工具选项卡.操作步骤:文件--选项--自定义功能区--勾选开发工具选项卡--确定.        开发工具选项卡2)从开发工具选项卡找到插入菜单,从 ...

  • 表格字母排序自动填充(EXCEL如何自动填充字母)

    只写最接地气的办公干货,加入我们,组队前行.我们在工作中有时候会需要A-Z之间的字母序列,一个一个写肯定比较慢,如何快速生成呢?公式B2=char(A2)char函数是将数字(1-255之间)转化为对 ...

  • Excel如何自动填充数字

    所谓的自动填充,指的是使用单元格拖放的方式来快速完成单元格数据的输入.在Excel中,数字可以以等值.等差和等比的方式自动填充到单元格中,下面介绍Excel 2013中自动填充数字的具体操作方法. 1 ...

  • 话说,移动端表单你真的了解吗?

    前言: 用App时每次遇到填写表单都会是一件头疼的事情,所以作为设计师,每次设计表单界面时也不可以忽略她的重要性,我们需要先了解表单的基本组件样式和使用场景,然后运用到设计当中,在不同的情境下适应最合 ...

  • 表单大师的3个技巧

    大表姐的日常就是天天挖土找金子,开个玩笑啦,其实是每天打开表单100次.所以有了这篇推文,不废话,今天给大家带来了以下3个小技巧: 自动填充 01 之前写过一篇"有一种偷懒的方法叫自动填写& ...