我在一个网页上工作,我想自定义样式的<按钮>标签。在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;
}

当前回答

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

*{
outline: none;
}

or

*{
outline-style: none;
}

其他回答

可以用这个:

:active {
    outline:none;
}

如果那也不管用的话:

:active {
   outline:none !important;
}

这适用于我(FF和Chrome,至少)。不要以:focus状态为目标,只需以:active状态为目标,当用户单击链接时,这将删除浏览器中美观的突出显示。但是当一个有残疾标签或shift-tab的用户浏览一个页面时,它仍然会保留焦点状态。双方都很高兴。:)

我遇到了同样的问题,所以我使用简单的CSS-

.custom-button {
    outline: none
}

好吧,即使有永远不会有人看到这个的风险,因为已经有很多答案了,我想在2020年提供更多的js解决方案,有很多:

Outline.js或Outline.js这两个库都解决了我们在这里遇到的问题:删除鼠标的轮廓,但保留键盘功能或可访问性。

所以,与其决定哪种风格和可访问性更重要,不如两者都选!

为了获得更好的结果,不要忘记!important声明

button:focus {outline:0 !important;}

具有!important属性的规则将始终被应用,无论该规则出现在CSS文档中的哪个位置。

这对我来说很管用:

button:focus {
    box-shadow:none;
}