浏览器表单兼容处理

在做表单中会遇到各种浏览器,和各种意想不到的问题,在这里做一个小的总结

  1. 表单自动填充背景色


    image.png

    如果点击了保存用户名,浏览器是会自动填充表单的,也会填充默认的背景色通过添加样式可以解决这样的问题

input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px white inset;
    box-shadow: 0 0 0 50px #fff inset;
}

效果如下:


image.png
  1. input按钮样式问题
    在ipad中input的type为button或submit的时候按钮会被渲染成模样的样式


    image.png

    解决办法

input[type="button"], input[type="submit"], input[type="reset"] {
-webkit-appearance: none;
}
textarea {  -webkit-appearance: none;}   

圆角的处理

.button{ border-radius: 0; } 

-webkit-appearance: none;这句话的意思就是去除iOS的默认样式

  1. 还有用户名和密码保存的问题
    关于浏览器自动填充表单的问题我都记录在这里可以自己查看//www.greatytc.com/p/0f4a2ab3388c 这里主要说的是但用户名和密码之间如果有其他的input框会导致浏览器将用户名记错的问题
    如下面这样

    image.png

    浏览起将用户名记录成了短信验证码
    解决办法,将短信验证码发在密码框下面,但是产品那边是不会通过的,只能是调整样式,页面的效果不变,只改样式和布局

  2. 在Safari中有两个问题比较啃爹了
    第一个就是在input框中出现了通讯录头像的问题


    image.png

    出现在手机号和用户名这些地方是可以理解的,但他还会出现在验证码中,现在只能通过其他的元素覆盖解决

input::-webkit-contacts-auto-fill-button {
  visibility: hidden;
  display: none !important;
  pointer-events: none;
  position: absolute;
  right: 0;
}

第二个,也是没有办法解决的一个问题

  1. 在ipad中的问题
    第一点就是表单填充问题,如果用submit表单提交会导致提交后表单的用户名和密码会被自动填充的用户名覆盖,
    解决办法,就使用其他按钮代替submit,点击触发submit提交
    第二点是select()事件,在ipad中如果给input框添加focusin事件并且在里面添加了select()事件当失去光标的时候input 框就会被赋值两次

input:-webkit-autofill {
-webkit-box-shadow: 0 0 0 1000px white inset;
box-shadow: 0 0 0 1000px white inset;
}
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
color: #999;
line-height:14px;
}
input:-moz-placeholder, textarea:-moz-placeholder {
color: #999;
line-height:14px;
}
input::-moz-placeholder, textarea::-moz-placeholder {
color: #999;
line-height:14px;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
color:#999!important;
line-height:12px!important;
}
input::-webkit-contacts-auto-fill-button {
visibility: hidden;
display: none !important;
pointer-events: none;
position: absolute;
right: 0;
}
input[type="text"],input[type="password"] {
-webkit-appearance: none;
border-radius: 0;
}
/css去掉iPhone、iPad默认按钮样式/
input[type="button"], input[type="submit"], input[type="reset"] {
-webkit-appearance: none;

}
textarea {
-webkit-appearance: none;
border-radius: 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.c...
    听风阁阅读 3,316评论 0 7
  • 目录一、介绍二、渲染引擎三、解析与DOM树构建四、渲染树构建五、布局六、绘制七、动态变化八、渲染引擎的线程九、CS...
    饥人谷_米弥轮阅读 2,472评论 0 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 就在消极的时候,发现文章能让我开心 文|念仔 美食每天美生活一篇文章,让我感觉生活还是很有追求的,每每写完一篇文章...
    刘小盗阅读 281评论 0 0
  • 人生就像一道伤口 一开始的时候麻木 就像我们的童年懵懂不知,接着我们感到痛,就像是青春让我们深刻,然后,会慢慢结痂...
    _o努翾阅读 1,018评论 0 3