CSS:去除点击链接和按钮时出现的虚线框

在前端制作的过程中会发现,一些文字/图片链接,或者一些input控件,在点击时会在周围出现虚线边框,一般会在火狐和IE浏览器下出现虚线框,谷歌下不会有。

这些虚线边框是作为对视觉设计的一种辅助,在不使用鼠标,而用键盘Tab键进行页面浏览时,会标示出当前所在的链接或控件的位置,便于浏览。这对那些视觉有障碍的人士来说更是必不可少的。

但是有些时候我们却不想使用它们,因为浏览器对虚线框的解析有差异,并且不规则,所以在视觉设计上反而成为了某种缺陷。所以这种时候,我们想要禁用这些虚线边框,使浏览者的视觉享受能够完美无瑕。

那么,如何去除这些点击时才会出现的虚线边框呢?

1. outline:none;

通常我们会这么写:a,input{outline:none;}

优点是代码简洁,使用一行css就能解决问题,但是也有缺点:ie6、ie7并不认识outline属性,需要配合仅ie6和ie7支持的css属性blr:expression_r(this.onFocus=this.blur());使用来达到兼容,expression 条件,这句话的意思是链接在获得焦点的同时失去焦点,但是blr不宜多用,会影响效率
 
  
2. hidefocus=”true”;
hidefocus是ie系列的专有属性,能够作用于所有ie序列的浏览器,需要配合css的outline:none。
也可以写作:hidefocus=”hidefocus”;
另外,hidefocus并不是W3C推荐的标准属性。
缺点是非全局控制,需要在每个需要去虚线边框的链接或input上加代码。

3. οnfοcus=”this.blur()”; 优点是比较通用。 缺点也很多,首先同2一样,也是属于局部控制的手段,需要在每一个需要去虚线边框的标签上使用; 然后这是属于script范畴,对于禁用JavaScript的用户来说不起作用; 将script直接写在html中对于页面效率有负面作用。 该方法需要与border:none;配合使用。
4. :active{outline:none;} 与1大致相同,唯一的区别是会在Tab键切换时出现虚线边框。
5. 
::-moz-focus-inner{outline:none;}
Firefox的专有属性,在去除input的虚线边框时需要使用到此属性。
但是经测试,应该对select无作用。

6. 使用JS遍历每一个链接
 
  
 
window.οnlοad=function()
{
for(var ii=0; ii<document.links.length; ii++)
document.links$[$ii$]$.οnfοcus=function(){this.blur()}
}
ps:我想去除的是原来就带有的边框:发现用:outline:none是没有用的 ;用border:none是ok的!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值