【问题标题】:how to remove dotted border around the link in IE7如何在IE7中删除链接周围的虚线边框
【发布时间】:2016-01-17 19:52:39
【问题描述】:

点击时按钮和链接有边框。

谁能帮我解决它。

【问题讨论】:

  • 那是焦点标记。它告诉不使用鼠标/轨迹球/等的人来导航他们在文档中的位置。除非你用更明显的东西替换它,否则不要删除它。
  • 如果您告诉我们到目前为止您尝试过什么,以及为什么它不起作用,这会有所帮助。这样我们就可以更好/更快地为您提供帮助!

标签: html css internet-explorer-7


【解决方案1】:

你可以这样预设:

:focus{
    outline:0; /*removes the dotted border*/
}

但请记住(出于可访问性原因)将 CSS 文件中的“稍后”样式设置为更明显的样式。例如:

a:focus, a:active{
    color:#ff5500; /*different color than regular*/
}
input[type=submit]:focus, input[type=submit]:active{
    background-color:#444; /*different color than regular*/
}

【讨论】:

  • 确定这行得通吗?我做了一个简单的演示,对焦环仍然出现。
  • 是的,它确实工作,在这里查看演示:jsfiddle.net/dLVyK/7我可以知道为什么不赞成吗?这个解决方案非常好。
  • 对不起,我真的很抱歉——我定义了一个错误的DOCTYPE,因此该规则不起作用。您能否编辑您的答案,以便我更改投票?我再次道歉。
  • @Abody97 - 是的,这很好,因为我只帮助了你。你不应该无缘无故地投反对票..
【解决方案2】:

试试这个

a:hover, a:active, a:focus {
  outline: 0;
 }

【讨论】:

    【解决方案3】:

    这很难看,但大多数 IE 修复也是如此。

    a:focus, *:focus {
        noFocusLine: expression(this.onFocus=this.blur());
    }
    

    【讨论】:

      【解决方案4】:

      首先,我可以看到您的标签之一是IE7-bug,而这实际上更像是一项功能。使用此点 outline 的目的是让用户能够使用鼠标滚轮或 tab 键在各种控件之间导航。

      无论如何,要在元素“聚焦”时定义元素的样式,请使用 CSS :focus 选择器。简单地说,设置此轮廓样式的属性是outlineoutline: 0 将阻止焦点轮廓出现。

      注意:您可能只想将该规则应用于您的按钮,而不是应用于所有元素,因为某些用户可能习惯于看到一些表示焦点的内容,这样可以更轻松地使用上面提到的方法。

      希望对您有所帮助。

      【讨论】:

      • @maanu 这可能是因为您没有定义正确的DOCTYPE
      【解决方案5】:

      IE7 不支持 CSS outline。该“浏览器”需要以下 CSS 表达式:

      a {
          _noFocusLine: expression(this.hideFocus=true); 
      }
      

      它也适用于较新的版本。

      【讨论】:

        【解决方案6】:

        这样就可以了

        a {
           outline:0;
        }
        

        【讨论】:

          【解决方案7】:

          这也可以

          一个 { 大纲样式:无; }

          【讨论】:

            【解决方案8】:

            一个:链接{ 大纲样式:无; }`

            【讨论】:

            • 请不要简单地发布代码。提供有关您的代码的一些解释或信息或用法。例如,请参阅this answer
            • 我认为这是最简单、最正确的答案。谢谢!
            【解决方案9】:

            尝试设置outline property:

            a {
               outline: 0;
            }
            

            【讨论】:

              【解决方案10】:

              试试

              a {
                   outline: none;
              }
              

              总是尝试使用css reset。这将帮助你解决这样的问题。我使用eric mayer css reset tool

              【讨论】:

              • <button type="button" class="bluebtn"> <span>Close</span><span></span></button>
              【解决方案11】:

              将此规则应用于输入

              input { outline : none ; }
              

              【讨论】:

                【解决方案12】:

                这是所有用于删除外线并将您的 CSS 放在所需类名下的代码。 (IE 中的类名。) 标签示例

                a{
                    _noFocusLine:expression(this.hideFocus=true);
                    outline-style:none;
                    outline:0;
                

                }

                HTML 页面中所有标签的示例!

                *{
                    _noFocusLine:expression(this.hideFocus=true);
                    outline-style:none;
                    outline:0;
                

                }

                html 页面中带有 myClassName 类的标签示例!

                .myClassName{
                    _noFocusLine:expression(this.hideFocus=true);
                    outline-style:none;
                    outline:0;
                

                }

                html 页面中带有 id myidName 的标签示例!

                #myidName{
                    _noFocusLine:expression(this.hideFocus=true);
                    outline-style:none;
                    outline:0;
                

                }

                希望这有助于在主要浏览器中工作,如果不是它们太旧,那么还有多少人仍在使用这种旧浏览器的机会!

                注意:outline:none 0; 也可以在较新的浏览器中使用,但不是全部。但是outline:0; 是通用的,在那些浏览器中不理解'none'并且你得到默认值,但是在所有使用这个大纲的浏览器中理解为0:。 IE7 需要这个_noFocusLine:expression(this.hideFocus=true);

                其余部分使用 Javascript!

                window.document.getElementById("myidName").blur();
                window.document.getElementById("myidName").hideFocus=true;
                window.document.getElementById("myidName").style.outline=0;
                

                Obj=window.document.getElementById("myidName");
                Obj.blur();
                Obj.hideFocus=true;
                Obj.style.outline=0;
                

                或者检查元素是否存在!

                if (window.document.getElementById("myidName")){
                    Obj=window.document.getElementById("myidName");
                    Obj.blur();
                    Obj.hideFocus=true;
                    Obj.style.outline=0;
                }
                

                Javascript 可以解决 IE6 和 IE7 的问题,而其他 CSS 则不行!

                【讨论】:

                  【解决方案13】:

                  您可以使用以下代码进行操作:

                     a:focus{
                        border: none;
                      }
                  

                  【讨论】:

                  • @maanu - 来吧,为什么要接受这个答案?这甚至行不通!您感兴趣的属性是轮廓,而不是边框​​。在 IE 中试试这个:jsfiddle.net/dLVyK/10 = 仍然看到大纲 = 不工作。
                  • @Zendy 我很欣赏你的努力,但不幸的是你的灵魂对我不起作用。在 windows xp 上运行时存在 IE 问题,只能使用此 hack 代码 noFocusLine: xpression(this.onFocus=this.blur()); 修复,这就是为什么接受正确答案
                  • @darma 这正是帮助我解决问题的原因cssjunction.com/css/remove-dotted-border-in-ie7
                  猜你喜欢
                  • 2017-07-20
                  • 1970-01-01
                  • 2010-11-11
                  • 2016-04-05
                  • 1970-01-01
                  • 2020-10-26
                  • 2012-11-20
                  • 1970-01-01
                  • 2021-04-07
                  相关资源
                  最近更新 更多