修复iPhone的safari浏览器上submit按钮圆角bug


Posted in HTML / CSS onDecember 24, 2012

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

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

修复iPhone的safari浏览器上submit按钮圆角bug

奇怪的是你点击以后就会正常:

修复iPhone的safari浏览器上submit按钮圆角bug

对比一下,你也会觉得怪,怪都算了,还不知道如何下手:

修复iPhone的safari浏览器上submit按钮圆角bug

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

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;
}

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

修复iPhone的safari浏览器上submit按钮圆角bug

注:请使用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浏览器上submit按钮圆角bug

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

复制代码
代码如下:

.form-actions input{
...
-webkit-appearance: none;
}

告诉浏览器我们不希望按钮按苹果的默认UI来渲染。

那么"-webkit-appearance"对button还有什么影响呢?大家可以参考下面的截图:

修复iPhone的safari浏览器上submit按钮圆角bug

修复iPhone的safari浏览器上submit按钮圆角bug

修复iPhone的safari浏览器上submit按钮圆角bug

上图所显示的效果,都将button设置了:

复制代码
代码如下:

.button {
border-radius: 0;
}

效果图明显的告诉我们,在不同的“-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实例分享--超炫checkbox复选框和radio单选框
Sep 01 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
May 07 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
Sep 15 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
Jan 15 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
Nov 17 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
Sep 02 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
May 29 HTML / CSS
HTML5页面音视频在微信和app下自动播放的实现方法
Oct 20 HTML / CSS
如何用canvas实现在线签名的示例代码
Jul 10 HTML / CSS
Html5自定义字体解决方法
Oct 09 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
Nov 10 HTML / CSS
CSS 实现多彩、智能的阴影效果
May 12 HTML / CSS
表单button的outline在firefox浏览器下的问题
Dec 24 #HTML / CSS
button在IE6/7下的黑边去除方案
Dec 24 #HTML / CSS
移动Web—CSS为Retina屏幕替换更高质量的图片
Dec 24 #HTML / CSS
image-set实现Retina屏幕下图片显示详细介绍
Dec 24 #HTML / CSS
今天学到的CSS最新技术(与图片背景相关)
Dec 24 #HTML / CSS
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
Dec 19 #HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 #HTML / CSS
You might like
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
python实现决策树分类算法
2017/12/21 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
幼儿园中秋节活动方案2013
2014/01/29 职场文书
期末评语大全
2014/05/04 职场文书
市场营销策划方案
2014/06/11 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python