• 去除input,a,按键链接时出现的虚线方法


    在前端制作的过程中会发现,一些文字/图片链接,或者一些input控件,在点击时会在周围出现虚线边框。

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

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

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

    却倒也是蛮复杂的,且逐一分析一番。

    1. outline:none;
    通常我们会这么写:

    1 a:focus, input[type=button] ,input[type=submit] {
    2     outline:none;
    3 }

    优点是代码简洁,使用一行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遍历每一个链接

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

    也可以封装起来作为函数:

    1 function fHideFocus(tName){
    2     aTag=document.getElementsByTagName(tName);
    3     for(i=0;i<aTag.length;i++)aTag$[$i$]$.hideFocus=true;
    4     //for(i=0;i<aTag.length;i++)aTag$[$i$]$.onfocus=function(){this.blur();};
    5 }

    当前是添加一个hidefocus的属性,注释掉的句子是添加onfucus=this.blur();
    然后调用fHideFocus(“A”),即可把a的虚线框去掉。
    通过传递不同的参数,可以去掉更多的虚线框,比如”BUTTON”可以去掉button按钮的虚线边框。
    参数要用大写字母。

    转载:http://www.decimage.com/web/remove-dotted-border-when-click-on-link-or-input.html#

  • 相关阅读:
    选择器高级,from提交方式
    java基础(5)
    java基础(4)
    java基础(3)
    java基础(2)
    java基础(1)
    数据库基础与ADO.NET和C#中的异常处理
    C#中字符串的常用方法
    Linux基本命令格式(3)
    面向对象第二章
  • 原文地址:https://www.cnblogs.com/laiweidong/p/2855343.html
Copyright © 2020-2023  润新知