我可以让Firefox不显示丑陋的点状焦点轮廓的链接:

a:focus { 
    outline: none; 
}

但我怎么能这样做<按钮>标签以及?当我这样做的时候:

button:focus { 
    outline: none; 
}

当我点击它们时,按钮仍然有虚线焦点轮廓。

(是的,我知道这是一个可用性问题,但我想提供我自己的重点提示,这是适合于设计,而不是丑陋的灰点)


当前回答

:focus, :active {
    outline: 0;
    border: 0;
}

其他回答

button::-moz-focus-inner { border: 0; }

Where button可以是你想要禁用行为的任何CSS选择器。

不需要定义选择器。

:focus {outline:none;}
::-moz-focus-inner {border:0;}

然而,这违反了W3C的可访问性最佳实践。大纲是用来帮助那些用键盘导航的人。

https://www.w3.org/TR/WCAG20-TECHS/F78.html#F78-examples

下面的链接为我工作的情况下,想到分享-如果有人感兴趣。

a, a:visited, a:focus, a:active, a:hover{
    outline:0 none !important;
}

干杯!

如果你更喜欢使用CSS来摆脱虚线轮廓:

/*for FireFox*/
    input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner
    {   
        border : 0;
    } 
/*for IE8 and below */
    input[type="submit"]:focus, input[type="button"]:focus
    {     
        outline : none; 
    }

我认为你应该知道你移除焦点轮廓是在做什么,因为它会破坏键盘导航和可访问性。

如果你因为设计问题需要把它去掉,添加一个:focus状态到按钮上,用其他视觉提示替换它,比如,将边框更改为更亮的颜色或类似的东西。

有时我觉得有必要把烦人的轮廓去掉,但我总是准备一个替代焦点视觉线索。

永远不要使用blur() js函数。使用::-moz-focus-inner伪类。