表单button的outline在firefox浏览器下的问题


Posted in HTML / CSS onDecember 24, 2012

outline的使用,大家都喜欢在reset样式表中直接重置:

复制代码
代码如下:

* {
outline: none;
}
 
Eric Meyers 在他的CSS Reset 是这样重置的:
复制代码
代码如下:

/* remember to define focus styles! */
:focus {
outline: 0;
}
 

这些方法大家都可以说常见了。可是有一点可能大家还是不太清楚——outline在表单的button中使用时,在firefox浏览器下依然还是会有虚线框显示的。正好今天有一位朋友也问起这个问题,于是查了一下相关资料,才得知在Firefox下是需要使用别的方法来处理的。那么今天这个教程就简单的来了解如何处理这个问题。

问题描述:

前面也说了,很多设计师喜欢使用:

复制代码
代码如下:

*{outline:none;}
或者
:focus {outline:none;}

来解决焦点粗虚线框的问题。但是你有没有注意到,使用这种方法,对于button在Firefox下还是会有虚线框的,如下图所示:

表单button的outline在firefox浏览器下的问题

解决方法:

解决这个bug我们需要使用Mozilla的一个私有属性:-moz-focus-inner。不过这里有一点大家需要特别的注意:通过“-moz-focus-inner”并不是重置“outline”这个属性的值,而是需要通过他来改变buttons的“border”样式,具体的请看下面的代码:

复制代码
代码如下:

input::-moz-focus-inner,
button::-moz-focus-inner {
border: 0;
}
 
上面写是包括了所有的input,但有时我们并不想这个值对“input[type=text]”有影响,那么我样其实可以这样来设置:
复制代码
代码如下:

button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
border: none;
}

通过上面的代码,那个难看的虚线框,我们就可以顺利的移除:

表单button的outline在firefox浏览器下的问题

这样一来,我们其实对于button的outline设置需要这样来设置,才能达到所有浏览器一样的风格效果:

复制代码
代码如下:

:focus {outline:none;} /*for IE*/
::-moz-focus-inner {border-color: transparent;} /*for mozilla*/
       
这样表单button得到焦点,在各浏览器下的渲染效果就一致了。

上面是去除outline的边框效果的写法,但那样或许不太好理解,那么你也可以像设置正常样式那来理解,如下面的代码所示:

复制代码
代码如下:

button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
border: 1px dotted transparent;
}
button:focus::-moz-focus-inner,
input[type="reset"]:focus::-moz-focus-inner,
input[type="button"]:focus::-moz-focus-inner,
input[type="submit"]:focus::-moz-focus-inner,
input[type="file"] > input[type="button"]:focus::-moz-focus-inner {
padding: 3px;
border-color: #F3F3F3;
}

上面的使用可算是一个小技巧吧,可能知道的人也蛮多的,我也就不在多说这样的问题,因为要我来说是怎么一回事,我也实在没有那样的水平来说清楚,但我只知道这样的方法能解决问题。那么有关于“outline”的使用还是蛮多的;希望上面的这段代码大家用得上,如果你有更好的解决办法,希望在评论中给我留言。
HTML / CSS 相关文章推荐
css背景图片的背景裁切、背景透明度、背景变换等效果运用
Dec 24 HTML / CSS
纯CSS3实现绘制各种图形实现代码详细整理
Dec 26 HTML / CSS
css3 iphone玻璃透明气泡完美实现
Mar 20 HTML / CSS
一款css实现的鼠标经过按钮的特效
Sep 11 HTML / CSS
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
Nov 11 HTML / CSS
CSS3实现时间轴效果
Jul 11 HTML / CSS
会走动的图形html5时钟示例
Apr 27 HTML / CSS
Web时代变迁及html5与html4的区别
Jan 06 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
Sep 06 HTML / CSS
Html5监听手机摇一摇事件的实现
Nov 07 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
Jun 03 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 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
css3制作动态进度条以及附加jQuery百分比数字显示
Dec 13 #HTML / CSS
You might like
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
三种php连接access数据库方法
2013/11/11 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
python中将字典形式的数据循环插入Excel
2018/01/16 Python
python处理数据,存进hive表的方法
2018/07/04 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
使用Python发现隐藏的wifi
2020/03/04 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
医院检讨书范文
2014/02/01 职场文书
小学生手册家长评语
2014/04/16 职场文书
交通文明倡议书
2014/05/16 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书