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

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

方法一:outline:none;

通常我们会这么写:a,input{outline:none;}
优点是代码简洁,使用一行css就能解决问题,但是也有缺点:ie6、ie7并不认识outline属性,需要配合仅ie6和ie7支持的css属性 blr:expression_r(this.onFocus=this.blur());使用来达到兼容,expression 条件,这句话的意思是链接在获得焦点的同时失去焦点,但是blr不宜多用,会影响效率。

方法二:hidefocus=”true”;

hidefocus是ie系列的专有属性,能够作用于所有ie序列的浏览器,需要配合css的outline:none。
也可以写作:hidefocus=”hidefocus”;
另外,hidefocus并不是W3C推荐的标准属性。
缺点是非全局控制,需要在每个需要去虚线边框的链接或input上加代码。

方法三:onfocus=”this.blur()”;

优点是比较通用。
缺点也很多,首先同2一样,也是属于局部控制的手段,需要在每一个需要去虚线边框的标签上使用;
然后这是属于script范畴,对于禁用JavaScript的用户来说不起作用;
将script直接写在html中对于页面效率有负面作用。
该方法需要与border:none;配合使用。

方法四: :active{outline:none;}

与1大致相同,唯一的区别是会在Tab键切换时出现虚线边框。

方法五: ::-moz-focus-inner{outline:none;}

Firefox的专有属性,在去除input的虚线边框时需要使用到此属性。
但是经测试,应该对select无作用。

方法六: 使用JS遍历每一个链接

window.onload=function()  
{  
for(var ii=0; ii<document.links.length; ii++)  
document.links$[$ii$]$.onfocus=function(){this.blur()}  
}  

来自:https://justcoding.iteye.com/blog/2209919

End
版权声明:若无特殊注明,本文皆为( 吴尼玛 )原创,转载请保留文章出处。
吴尼玛

吴尼玛

人生在世,无需多言,你当自己是看客,我却不能假装你没有来过。

Typecho增添emoji表情功能
Typecho使用AJAX实时获取评论者头像

发表评论

    avatar
    假装提交肿...