CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式


Posted in HTML / CSS onOctober 11, 2014

今天在公司写了一个登录页面效果,让我碰到一个怪异的问题——“表单中的input[type="submit"]和input[type="reset"]按钮在iPhone的safari浏览器下圆角有一个bug”。下面我来简单的描述一下这个bug的样子:

初载入页面后,表单中的input[type="submit"]和input[type="reset"]按钮渲染成下图的样子:

CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
奇怪的是你点击以后就会正常:

CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式

或许很多同学会认为我的样式代码没写好,那么想让大家知道是怎么一回事,先来看看我写的代码:

input[type="submit"]和input[type="reset"]样式代码:

复制代码
代码如下:
.form-actions input{
width: 30%;
cursor: pointer;
background: rgb(61, 157, 179);
padding: 8px 5px;
font-family: 'BebasNeueRegular','Arial Narrow',Arial,sans-serif;
color: #fff;
font-size: 24px;
margin: 5px;
border: 1px solid rgb(28, 108, 122);
margin-bottom: 10px;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
border-radius: 3px;
box-shadow:0px 1px 6px 4px rgba(0, 0, 0, 0.07) inset,
0px 0px 0px 3px rgb(254, 254, 254),
0px 5px 3px 3px rgb(210, 210, 210);
-webkit-transition: all 0.2s linear;
transition: all 0.2s linear;
}
.form-actions input:hover{
background: rgb(74, 179, 198);
}
.form-actions input:active,
.form-actions input:focus{
background: rgb(40, 137, 154);
position: relative;
top: 1px;
border: 1px solid rgb(12, 76, 87);
box-shadow: 0px 1px 6px 4px rgba(0, 0, 0, 0.2) inset;
}

这样的代码在浏览器中浏览是完全没有问题的:

注:请使用safari测试上面代码。
可是上面的代码就在iPhone的Safari浏览器下出开头所陈述的问题。一下真不好如何动手解决,因为从来没有接触过,所以就一直没有碰到过。 但问题出了,就要想办法解决,于是在GG上搜索“input submit for iPhone”,还真找到了问题所在。 Keir Whitaker 在Styling Submit Buttons for Mobile Safari 中介绍的内容和我碰到的问题可真是一模一样,按其方法在样式中加入:



复制代码代码如下:
.form-actions input{
 ...
 -webkit-appearance: none;
 }
更新到iPhone一看,真爽,问题解决了。

原来问题出在这里,iPhone上的safari解析input[type="submit"]和input[type="reset"]按钮会以 苹果浏览器的默认UI渲染,这样就出现我刚才那种现像,我们在样式中明确的设置了button的圆角值,但到iPhone的safari上就不生效了。要 想让他生效,就需要在样式中明确的指名:



复制代码代码如下:
.form-actions input{
 ... 
 -webkit-appearance: none;  }
在不同的“-webkit-appearance”选值情况下,button所渲染的效果是不一样的,详细的测试代码大家可使用safari浏览器点击这 里。有关于“-webkit-appearance”的详细介绍,这回算是知道了,最后我建议大家,我们可以直接在“reset.css”样式文件中加处 这么一句:



复制代码代码如下:
input[type="submit"],
 input[type="reset"],
 input[type="button"],
 button { -webkit-appearance: none; }
这样一来就不会为这样的问题头痛了。
如果你还没有碰到,或者你也在开发移动端web,都希望你记住这个小技巧,因为当你在制作中碰到这样的问题时,不会为此抓破头皮,能解决你问题。最后希望大家喜欢这篇文章,如果你觉得对你有所帮助,可以推荐给你的朋友,谢谢阅读。
HTML / CSS 相关文章推荐
使用CSS3代码绘制可爱的Hello Kitty猫
Aug 03 HTML / CSS
css3实现简单的白云飘动背景特效
Oct 28 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
Apr 28 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
Aug 08 HTML / CSS
html5的canvas实现3d雪花飘舞效果
Dec 27 HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 HTML / CSS
Canvas高级路径操作之拖拽对象的实现
Aug 05 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
Apr 08 HTML / CSS
原生CSS实现文字无限轮播的通用方法
Mar 30 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 HTML / CSS
CSS 实现角标效果的完整代码
Jun 28 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
Oct 10 #HTML / CSS
css3弹性盒模型(Flexbox)详细介绍
Oct 08 #HTML / CSS
一款纯css3实现的动画加载导航
Oct 08 #HTML / CSS
css3 transform属性详解
Sep 30 #HTML / CSS
让IE支持CSS3的不完全兼容方案
Sep 19 #HTML / CSS
一款css实现的鼠标经过按钮的特效
Sep 11 #HTML / CSS
纯CSS3发光分享按钮的实现教程
Sep 06 #HTML / CSS
You might like
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
python3+PyQt5实现柱状图
2018/04/24 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
Python input函数使用实例解析
2019/11/22 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
.net笔试题
2014/03/03 面试题
如何获得EntityManager
2014/02/09 面试题
财务助理岗位职责
2013/11/10 职场文书
大学生简历的个人自我评价
2013/12/04 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
感恩的演讲稿
2014/05/06 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
高中物理教学反思
2016/02/19 职场文书