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

a:focus { 
    outline: none; 
}

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

button:focus { 
    outline: none; 
}

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

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


当前回答

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

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

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

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

其他回答

【更新】这个解决方案不再有效。对我有效的解决方案是https://stackoverflow.com/a/3844452/925560

标记为正确的答案在Firefox 24.0中无法使用。

为了移除Firefox在按钮和锚标记上的虚线轮廓,我添加了下面的代码:

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

我在这里找到了解决方案:http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html

你可以尝试在CSS中使用button::-moz-focus-inner {border: 0px solid transparent;}。

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

在尝试了以上的许多选择后,只有以下几种对我有用。

*:focus, *:visited, *:active, *:hover  { outline:0 !important;}
*::-moz-focus-inner {border:0;}

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

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

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

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