引导按钮在单击时显示蓝色轮廓


137

我添加了此内容,但单击按钮时仍显示蓝色轮廓。

.btn:focus {
  outline: none;
}

如何删除那丑陋的东西?


尝试设置:active按钮。附加:使用浏览器中的检查器查找问题。
Adrian Preuss 2014年

1
您能否发布更多代码或jsfiddle演示,以便我们为您提供帮助
Richa

不确定按钮,但引导程序会将box-shadow添加到输入字段,可以使用box-shadow:none删除它;
davidcondrey 2014年

3
FWIW,焦点样式对于键盘导航很重要。
Nate Whittaker

图片在这里很有用
鸡汤

Answers:


203

可能是您的属性被覆盖。尝试将 !important代码与:active一起附加到您的代码中。

.btn:focus,.btn:active {
   outline: none !important;
   box-shadow: none;
}

还要添加阴影框,因为否则您仍将看到按钮周围的阴影。

虽然这不是使用!important的好习惯,但我建议您使用更具体的类,然后尝试使用!important来应用css ...


@Janak但是,当覆盖:active时为什么有必要?

我还可以补充一点,当使用!important进行

7
如果您使用的是Bootstrap 4,box-shadow: none-webkit-box-shadow: none在此答案中添加(并且不要忘记前缀)。另请注意,Bootstrap 4已.btn:focus { outline: none }在其btn类中具有。
Cooleronie17年

1
不使用鼠标导航时,视觉提示至关重要。如果删除轮廓,则必须添加一些其他视觉反馈,否则您的站点将受到损害。
约瑟夫·恩格尔弗罗斯特

52

在最新版本的Bootstrap中,我发现删除大纲本身不起作用。我必须添加它,因为还有一个盒子阴影:

.btn:focus, .btn:active {
  outline: none !important;
  box-shadow: none !important;
}

1
这对我有帮助。
Vahx

如果您想确定要点击所有按钮,只需使用button {outline:none!important; box-shadow:无!重要;}
提请

52

有内置的boostrap类shadow-none用于禁用box-shadow(不是outline)(https://getbootstrap.com/docs/4.1/utilities/shadows/)。这将删除按钮的阴影:

<button class='btn btn-primary shadow-none'>Example button</button>

非常感谢。
Nikolay Tsenkov,

3
这是最好的答案
jmrueda

1
这就是您要寻找的解决方案。这就是解决方案,继续前进,继续前进。感谢您使用Bootstrap 4解决了
Firefox。– swudev

这篇文章是关于删除轮廓,而不是阴影。令人遗憾的是,该评论具有误导性。
Clay Records

是的,这是最好的答案,但为什么在“警告解除”十字按钮上不被接受
Nawaraj

19

尝试以下代码

.button:active, 
 button:active,
.button:focus, 
 button:focus,
.button:hover, 
 button:hover{
    border:none !important;
    outline:none !important;
}

4
我只需要此部分即可删除chrome中的轮廓:button:focus {outline:none;}
TTT,

13

这是我在Chrome中发生的(尽管不是在Firefox中)。我发现outlineBootstrap 将该属性设置为outline: 5px auto -webkit-focus-ring-color;。通过outline稍后在自定义CSS中重写该属性来解决,如下所示:

.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus {
    outline: 0;
}

12

这将解决带有文本的按钮,按钮只有一个图标或一个按钮是链接:

 <!--1. button with a text -->
 <button type="button" class="btn btn-success" id="newWord">Save</button>

 <!--2. button only with a close icon -->
 <button type="button" class="close"></button>

 <!--3. button is a link -->
 <a class="btn btn-success btn-xs" href="#">Save</a>



button,
button:active,
button:focus, 
button:hover,
.btn,
.btn:active, 
.btn:focus, 
.btn:hover{   
    outline:none !important;
}

如果您添加 border:none !important;

{
    border:none !important;
    outline:none !important;
}

那么点击该按钮时,它的尺寸将变小。



7

在Bootstrap 4中,他们box-shadow: 0 0 0 0px rgba(0,123,255,0);在:focus上使用 ,因为我解决了我的问题

a.active.focus,
a.active:focus,
a.focus,
a:active.focus,
a:active:focus,
a:focus,
button.active.focus,
button.active:focus,
button.focus,
button:active.focus,
button:active:focus,
button:focus,
.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn:active:focus,
.btn:focus {
    outline: 0;
    outline-color: transparent;
    outline-width: 0;
    outline-style: none;
    box-shadow: 0 0 0 0 rgba(0,123,255,0);
}

4

即使通过将其值设置为0从按钮中删除轮廓,单击按钮时按钮上仍然有一个有趣的行为,其大小会缩小一点。所以我想出了一个最佳解决方案:

.btn:focus {
   outline: none !important;
   box-shadow: 0 0 0 0;
}

希望这可以帮助...


3

您需要使用适当的嵌套,然后对其应用样式。

  • 右键单击按钮,并使用(使用firebug for firefox检查元素),(对于chrome检查元素)找到确切的类嵌套。

  • 为整个班级增加风格。只有这样才能奏效



3

我选择仅删除上的边框宽度:focus。这消除了轮廓和按钮的圆角之间的难看空间。由于某种原因,此问题仅发生在实际的按钮元素上,而不是<a class="btn">元素上。

button.btn:focus {
  border-width: 0;
}

3

如果有人仍然有未解决的问题,这可能会有所帮助。

(function() {
  $('button').on('click', function() {
    $("#action").html("button was clicked");
    console.log("the button was clicked");
  });
})();
.btn-clear {
  background-color: transparent !important;
  border-style: none !important;
  cursor: pointer;
}

.btn-clear:active,
.btn-clear:focus {
  outline-style: none !important;
  outline-color: transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- this button has default style -->
<button>Action</button>
<!-- this button is clear of style -->
<button class="btn-clear">Action</button>

<label id="action"></label>


3

这是我的Boostrap 4解决方案,用于删除按钮轮廓

/*
* Boostrap 4
* Remove blue outline from button
*/

.btn:focus,
.btn:active {
  box-shadow: none;
}

3

我只是遇到了同样的问题,以下代码对我有用:

.btn:active, .btn:focus, .btn:active:focus, .btn.active:focus {
    outline: none !important;
}

.btn {
  margin:32px;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->




<button type="button" class="btn btn-default">Button</button>

希望会有所帮助!


大纲!h! 轰鸣
亚当·考克斯

3

实际上,在引导程序中定义了所有情况下的所有变量。在您的情况下,您只需要覆盖'_variables.scss'文件中的默认变量'$ input-btn-focus-box-shadow'。像这样: $input-btn-focus-box-shadow: none; 请注意,您需要在自己的自定义'_yourCusomVarsFile.scss'中覆盖该变量。该文件应先导入项目,然后再引导,如下所示:

@import "yourCusomVarsFile";
@import "bootstrap/scss/bootstrap";
@import "someOther";

bootstrap vars带有标志“!default”。

$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

因此,在文件中,您将覆盖默认值。这里的插图:

$input-focus-box-shadow: none;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

第一个变量比第二个变量具有更高的优先级。其余状态和情况也一样。希望对您有帮助。

这是回购中的“ _variable.scss”文件,您可以在其中找到引导程序中的所有初始值:https : //github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss

芝士





1

请记住,如果您的按钮位于锚点之内,例如:

<a href='some_link'>
    <button class='btn'>Button</button>
</a>

向按钮本身添加样式可能还不够,您可能需要a:focus, a:active { outline: none }在适当的地方添加CSS规则(这对我有用)。



1

有时{outline: 0}无法解决问题,我们可以尝试{box-shadow: none;}


1

我正在使用引导程序4,可以使用轮廓和框阴影。

#buttonId {
    box-shadow: none;
    outline: none;
}

或者,如果按钮位于div之类的没有内部背景的元素内,则框阴影就足够了。

#buttonId {
     box-shadow: none;
}

示例:https//codepen.io/techednelson/pen/XRwgRB


1

如果您使用的是4.3版或更高版本,则您的代码将无法正常工作。这就是我用的。它为我工作。

.btn:focus, .btn:active {
    outline: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}

你是对的。如果没有-webkit-box-shadow,它将无法工作:none!important; 线。
埃米尔(Emir)

1

而不是针对按钮类(.btn),这里我针对按钮元素本身,它对我有用

        button:focus {
          outline:none !important;
          box-shadow:none !important;
        }

并可以使用shadow-none类作为输入字段


0

这是非CSS方法。使用JQuery,只要单击元素就可以删除“ focus”类。

$(".btn").mousemove(function(element) { $(this).removeClass("focus"); });

这种方法可能会导致边框闪现,然后短暂退出,在我看来,这看起来还不错(单击按钮时,它看起来像是响应的一部分)。

我使用.mousemove()的原因是,事实证明.click()和.mouseup()均无效。


2
h。添加更多的JavaScript来击败CSS并不是最佳实践。恕我直言。
大卫,

0

更改这些值对我有用。我是通过查看Chrome开发者工具找到的

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
    color: #fff;
    background-color: /*Change This*/;
    border-color: /*Change This*/;
}

这也保留了按钮的阴影,它仅更改单击时按钮的颜色。


0

覆盖确切的引导语句:

.btn-primary.focus, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{
 box-shadow: none;
}


0

所有元素的SCSS方式(不仅是按钮):

body {
  * {
    &:focus, &.focus,
    &:active, &.active {
      outline: transparent none 0 !important;
      box-shadow: 0 0 0 0 rgba(0,123,255,0) !important;
      -webkit-box-shadow: none !important;
    }
  }
}
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.