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

发布于 2024-09-04 17:42:55 字数 142 浏览 7 评论 0原文

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

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

Does anybody know how to disable or manipulate the (in most browsers) dashed border of a dom-element if it has the focus in a tabindex order?

I want to build my own style for a focused element, but it would be great to use the existing feature, because with tabindex it is possible to bind keydown event to the dom-element.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

疯到世界奔溃 2024-09-11 17:42:55

只需为您想要的具有 outline:none; 的元素制定 CSS 规则即可

Just make a CSS rule for the elements you want that have outline:none;

日暮斜阳 2024-09-11 17:42:55

CSS技巧:

:focus { outline: none; }

CSS trick:

:focus { outline: none; }
多情癖 2024-09-11 17:42:55

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

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

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

With Firefox 53.0, if I disable the outline with one of the proposed solution, Firefox displays the default one.

However, if I use a blank color, it doesn't detect that the outline is hidden:

input:focus{
   outline: 1px solid rgba(255,255,255,1);
}
尤怨 2024-09-11 17:42:55
input::-moz-focus-inner { border: 0; }
input::-moz-focus-inner { border: 0; }
鹤舞 2024-09-11 17:42:55

经典方式是将outline设置为none:

outline: none;

但是,它在更高版本的浏览器或FireFox上不再起作用。
这个技巧对我有用:

outline: 0px solid transparent;

哈哈。将来,如果它检测到透明,则只需替换为稍微高一点的透明度:

outline: 0px solid rgba(0,0,0,0.001);

某些浏览器,它也是一个盒子阴影:

outline:none !important;
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;

Classic way is set outline to none:

outline: none;

However, it didn't work anymore on higher version browser or FireFox.
This trick work for me:

outline: 0px solid transparent;

LOL. In future, if it detected transparent, then just replace with a little tiny higher transparent:

outline: 0px solid rgba(0,0,0,0.001);

Some browsers, it was a boxshadow too:

outline:none !important;
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
挽清梦 2024-09-11 17:42:55
a {
outline: 0;
}

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

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

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

input::-moz-focus-inner {
border: 0;
}
初与友歌 2024-09-11 17:42:55

:focus state - 将轮廓属性设置为0px纯透明;

:focus state - Set the outline property to 0px solid transparent;

私野 2024-09-11 17:42:55
$(function() {
     $('a').click(function() { $(this).blur(); });
     $('input').click(function() { $(this).blur(); });
});

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

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

Don't use CSS disable focus: http://outlinenone.com/ This use other users.

時窥 2024-09-11 17:42:55

使用 jQuery 你可以做

$("#nav li a").focus(function(){
  $(this).blur();
});

Using jQuery you can do

$("#nav li a").focus(function(){
  $(this).blur();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文