【问题标题】: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 浏览器上看起来不错
  • 焦点矩形旨在帮助用户观察点击是有效的,从而防止他意外点击两次。那么你确定你是在解决问题而不是在创造问题吗?

标签: css button


【解决方案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】:

      将按钮的outline 和box-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:focus{outline: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-tyle{outline:0;或者对每个按钮中没有#id的所有按钮使用相同的样式,这是一个演示link: input[type="button"] { width:70px;高度:30px;左边距:72px;边距顶部:15px;显示:块;背景颜色:灰色;白颜色;边框:无;大纲:0; }
                          • 删除蓝色背景颜色 onclick 我添加了 -> *{ -webkit-tap-highlight-color: transparent !important; }
                          • 第一次完美运行 - 谢谢!
                          猜你喜欢
                          • 2021-09-24
                          • 2020-10-10
                          • 2016-03-07
                          • 2020-06-17
                          • 2019-06-06
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多