如何从输入按钮中删除轮廓边框

Posted

技术标签:

【中文标题】如何从输入按钮中删除轮廓边框【英文标题】:How to remove outline border from input button 【发布时间】:2013-11-22 02:28:27 【问题描述】:

当我点击其他地方时,边框消失了,我尝试使用onfocus: none,但这没有帮助。如何让这个丑陋的按钮边框在点击时消失?

input[type=button] 
  width: 120px;
  height: 60px;
  margin-left: 35px;
  display: block;
  background-color: gray;
  color: white;
  border: none;
<input type="button" value="Example Button">

【问题讨论】:

在我的 mozilla 浏览器上看起来不错 焦点矩形旨在帮助用户观察点击是有效的,从而防止他意外点击两次。那么你确定你是在解决问题而不是在创造问题吗? 一本好书a11yproject.com/posts/never-remove-css-outlines 【参考方案1】:

Chrome 和 FF 中的焦点轮廓:

移除了按钮焦点轮廓

input[type=button] 
  outline:none;

input[type=button]::-moz-focus-inner 
  border: 0;


/*
  Accessibility (A11Y)
  Don't forget! User accessibility is important
*/
input[type=button]:focus 
  /* your custom focused styles here */
 

【讨论】:

【参考方案2】:

为了避免当你改变焦点上的outline属性时引起的问题,是当用户在输入按钮上Tab或点击它时给予视觉效果。

在这种情况下是提交类型,但您也可以应用到 type="button"。

input[type=submit]:focus 
    outline: none !important;
    background-color: rgb(208, 192, 74);

【讨论】:

【参考方案3】:

将按钮的outlinebox-shadow 属性设置为none 并使它们重要

input[type=button] 
    outline: none !important;
    box-shadow: none !important;
 
将值设置为 **important** 的原因是,如果您使用其他 CSS 库或 Bootstrap 等框架,它可能会被覆盖。

【讨论】:

box-shadow 在 Edge 上为我工作,很好 :)【参考方案4】:

使用 outline: none; 您可以在 chrome 中删除该边框。

<style>
input[type=button] 
    width: 120px;
    height: 60px;
    margin-left: 35px;
    display: block;
    background-color: gray;
    color: white;
    border: none;
    outline: none;

</style>

【讨论】:

在 Chrome 上,我必须将 outline: none; 规则添加到 input[type="button"]:focus 而不是 input[type="button"] @SungCho:谢谢。你的方法帮助了我。 在 Microsoft Edge 中也可以使用【参考方案5】:

由于 Chrome 和 Mozilla 不仅在按钮周围而且在链接文本周围添加了这一行,所以我在我的网站上使用:

a:focus outline: none;

适用于浏览器、链接和按钮。

顺便说一句,这没有(27.4.2021):

input[type=button]
   outline:none;

input[type=button]::-moz-focus-inner 
   border: 0;

【讨论】:

【参考方案6】:

注意outline: none 可以同时应用于&lt;button&gt; 标签和input[type=button] 以删除浏览器应用的点击边框。

【讨论】:

【参考方案7】:

使用键盘恢复轮廓的另一种方法是使用:focus-visible。但是,这在 IE 上不起作用:https://caniuse.com/?search=focus-visible。

【讨论】:

【参考方案8】:

在标准的 Web 开发中删除 nessorry 可访问事件不是一个好主意。 无论哪种方式,如果您正在寻找仅删除轮廓的解决方案并不能解决问题。您还必须删除蓝色阴影。对于特定场景,请使用单独的类名将这种特殊样式隔离到您的按钮。

.btn.focus, .btn:focus 
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);

最好这样做

.remove-border.focus, .remove-border:focus 
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
 

【讨论】:

【参考方案9】:
button:focusoutline:none !important;

如果在Bootstrap中使用,则添加!important

【讨论】:

我想提问者已经尝试过了,毕竟问题是tried onfocus none, but didn't help【参考方案10】:

这比你想象的要简单得多。当按钮获得焦点时,应用outline 属性,如下所示:

button:focus 
    outline: 0 !important;

但是当我使用none 值时,它对我不起作用。

【讨论】:

【参考方案11】:

正如许多其他人所提到的,selector:focus outline: none; 将删除该边框该边框是一个关键的辅助功能,允许键盘用户找到按钮,不应该 被删除。

由于您的关注点似乎是审美问题,您应该知道您可以更改轮廓的颜色、样式和宽度,使其更适合您的网站样式。

selector:focus 
  outline-width: 1px;
  outline-style: dashed;
  outline-color: red;

速记:

selector:focus 
  outline: 1px dashed red;

【讨论】:

【参考方案12】:

给定下面的html

<button class="btn-without-border"> Submit </button>

在 css 样式中执行以下操作:

.btn-without-border:focus 
    border: none;
    outline: none;

此代码将删除按钮边框并在单击按钮时禁用按钮边框焦点。

【讨论】:

【参考方案13】:

这个对我有用

button:focus 
    border: none;
    outline: none;

【讨论】:

【参考方案14】:

删除轮廓是可访问性的噩梦。使用键盘切换的人永远不会知道他们在哪个项目上。

最好留下它,因为大多数点击的按钮无论如何都会带你到某个地方,或者如果你必须删除大纲,然后将它隔离为一个特定的类名。

.no-outline 
  outline: none;

然后,您可以在需要时应用该类。

【讨论】:

【参考方案15】:

outline 属性是您所需要的。它是在单个声明中设置以下每个属性的简写:

outline-style outline-width outline-color

您可以使用outline: none;,这是在接受的答案中建议的。如果你愿意,你也可以更具体:

button 
    outline-style: none;

【讨论】:

【参考方案16】:

它对我来说很简单:)

*:focus 
    outline: 0 !important;

【讨论】:

这是唯一对我有用的答案,但是如果没有 !important 你会怎么做呢?我从很多消息来源获悉,只有在绝对必要时才应使用它。 我在外部 css 中为整个应用程序做了这个按钮样式。如果你想忽略它,你可以在css中使用#id在每个按钮中使用它:#button-tyleoutline:0;或者对每个按钮中没有#id的所有按钮使用相同的样式,这是一个演示link: input[type="button"] width:70px;高度:30px;左边距:72px;边距顶部:15px;显示:块;背景颜色:灰色;白颜色;边框:无;大纲:0; 删除蓝色背景颜色 onclick 我添加了 -> * -webkit-tap-highlight-color: transparent !important; 第一次完美运行 - 谢谢!

以上是关于如何从输入按钮中删除轮廓边框的主要内容,如果未能解决你的问题,请参考以下文章

如何删除焦点按钮文本周围的虚线白色边框

从 extjs 按钮中删除轮廓

Flutter:如何修复并为轮廓按钮添加边框和颜色?

删除默认Chrome输入焦点边框(轮廓)

增加输入框的宽度?删除单击按钮或输入框时出现的黑色轮廓?

无法从 Firefox 选择下拉菜单中删除轮廓/虚线边框 [重复]