通过javascript删除或禁用浏览器的焦点边框


75

如果有人将焦点放在tabindex顺序中,是否有人知道如何禁用或操作dom元素的(在大多数浏览器中)虚线边框?

我想为焦点元素构建自己的样式,但是使用现有功能会很棒,因为使用tabindex可以将keydown事件绑定到dom元素。

Answers:


177

只需为想要的元素创建CSS规则 outline:none;


2
如果您用鼠标单击该项目,那边框就不会再出现了,但是如果您通过键盘导航,那将是非常好的。您如何突出显示元素?
coorasse

1
@coorasse,如果你只想隐藏它的点击,您将需要使用JavaScript和呼叫.blur()的元素,一旦你点击它..
加布里埃尔Petrioli

史诗般的简短回答:) +1
Al-Hanash Moataz

38

CSS技巧:

:focus { outline: none; }

4
在禁用浏览器中的本机可访问性功能时,请务必考虑可用性问题。我建议创建自己的轮廓焦点,例如背景色黄色。
blagus

4

在Firefox 53.0中,如果我使用建议的解决方案之一禁用轮廓,则Firefox将显示默认解决方案。

但是,如果我使用空白,则不会检测到轮廓被隐藏:

input:focus{
   outline: 1px solid rgba(255,255,255,1);
}


1
a {
outline: 0;
}

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

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


-2
$(function() {
     $('a').click(function() { $(this).blur(); });
     $('input').click(function() { $(this).blur(); });
});

不要使用CSS禁用焦点:http : //outlinenone.com/这将使用其他用户。


1
为什么不使用CSS?我在您的链接中看到了重点,但是您建议的解决方案将完全破坏GUI,您将无法访问这些字段。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.