我在一个网页上工作,我想自定义样式的<按钮>标签。在CSS中,我说:border: none。现在它在safari中工作得很好,但在chrome中,当我点击其中一个按钮时,它会在它周围放上一个烦人的蓝色边框。我认为button:active {outline:none}或button:focus {outline:none}将工作,但两者都没有。什么好主意吗?

这是它在被点击之前的样子(以及我希望它在被点击之后的样子):

这就是我所说的边界:

这是我的CSS:

button.launch {
    background-color: #F9A300;
    border: none;
    height: 40px;
    padding: 5px 15px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 300;
    margin-top: 10px;
    margin-right: 10px;
}

button.launch:hover {
    cursor: pointer;
    background-color: #FABD44;
}

button.change {
    background-color: #F88F00;
    border: none;
    height: 40px;
    padding: 5px 15px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 300;
    margin-top: 10px;
    margin-right: 10px;
}

button.change:hover {
    cursor: pointer;
    background-color: #F89900;
}

button:active {
    outline: none;
    border: none;
}

当前回答

如果您使用Bootstrap 4.1或其他版本,大多数解决方案将无法工作。在敲了很多脑袋之后,我发现你需要应用无影课程:

<button class="btn shadow-none">Bootstrap (4.1) button without shadow</button>

其他回答

对所有有蓝色边框问题的元素尝试此代码

*{
outline: none;
}

or

*{
outline-style: none;
}

等等!那丑陋的轮廓是有原因的!

Before removing that ugly blue outline, you may want to take accessibility into consideration. By default, that blue outline is placed on focusable elements. This is so that users with accessibility issues are able to focus that button by tabbing to it. Some users do not have the motor skills to use a mouse and must use only the keyboard (or some other input device) for computer interaction. When you remove the blue outline, there is no longer a visual indicator on what element is focused. If you are going to remove the blue outline, you should replace it with another type of visual indication that the button is focused.

可能的解决方案:对焦时使按钮变暗

对于下面的例子,Chrome的蓝色轮廓首先被删除使用按钮:focus {outline:0 !}

下面是你的基本引导按钮,因为他们通常出现:

下面是接收焦点时的按钮:

下面是按下按钮时的情况:

正如您所看到的,当按钮获得焦点时,它们会稍微暗一些。就我个人而言,我会建议将焦点按钮设置得更暗,这样在焦点状态和正常状态之间就会有非常明显的区别。

它不仅适用于残疾用户

让你的网站更容易访问是经常被忽视的事情,但它可以帮助你在网站上创造更富有成效的体验。有许多普通用户使用键盘命令浏览网站,以保持双手在键盘上。

使用下面的代码Chakra UI,

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

*[data-focus] {
  box-shadow: none !important;
}`

如果你想在输入中删除相同的效果,你可以添加下面的代码和按钮。

input:focus {outline:0;}

对于任何使用Bootstrap并有此问题的人来说,他们使用:active:focus以及仅仅:active和:focus,所以你需要:

element:active:focus {
    outline: 0;
}

希望能节省一些人的时间来解决这个问题,我敲了敲我的头,想知道为什么这么简单的事情不能工作。