去除点击链接和按钮时出现的虚线框
2014-01-09 15:08:10 来源: 浏览: 次
但是有些时候我们却不想使用它们,因为浏览器对虚线框的解析有差异,并且不规则,所以在视觉设计上反而成为了某种缺陷。所以这种时候,我们想要禁用这些虚线边框,使浏览者的视觉享受能够完美无瑕。
那么,如何去除这些点击时才会出现的虚线边框呢?
却倒也是蛮复杂的,且逐一分析一番。
1. outline:none;
通常我们会这么写:
a:focus, input[type=button] ,input[type=submit] { outline:none; }
优点是代码简洁,使用一行css就能解决问题,但是也有缺点:ie6、ie7并不认识outline属性。
2. hidefocus=”true”;
hidefocus是ie系列的专有属性,能够作用于所有ie序列的浏览器。
也可以写作:hidefocus=”hidefocus”;
另外,hidefocus并不是W3C推荐的标准属性。
缺点是非全局控制,需要在每个需要去虚线边框的链接或input上加代码。
3. onfocus=”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.onload=function() { for(var ii=0; iidocument.links$[$ii$]$.onfocus=function(){this.blur()} }
也可以封装起来作为函数:
function fHideFocus(tName){ aTag=document.getElementsByTagName_r(tName); for(i=0;iaTag$[$i$]$.hideFocus=true; //for(i=0;i aTag$[$i$]$.onfocus=function(){this.blur();}; }
当前是添加一个hidefocus的属性,注释掉的句子是添加onfucus=this.blur();
然后调用fHideFocus(“A”),即可把a的虚线框去掉。
通过传递不同的参数,可以去掉更多的虚线框,比如”BUTTON”可以去掉button按钮的虚线边框。
参数要用大写字母。
7、如果ie中要实现,可以添加如下代码:
a {blr:expression(this.onFocus=this.blur())}
即可。
8、另图片热区边框------ <a herf="xxx" onFocus="if(this.blur)this.blur()">