html - 单击后更改按钮属性的 Bootstrap CSS

标签 html css bootstrap-4

我正在使用 Bootstrap,我正在尝试更改按钮的颜色,但事实证明,在单击按钮并且鼠标不在其上之后,颜色再次更改为蓝色。

这是我选择的颜色:

enter image description here

但是单击后,如果鼠标不在“内部”,颜色将变为蓝色:

enter image description here

我已经更改了大部分属性,如下所示:

.btn:focus, .btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem #EB984E;
}
.btn-primary {
  color: #fff;
  background-color: #EB984E;
  border-color: #EB984E;
}

.btn-primary:hover {
  color: #fff;
  background-color: #EB984E;
  border-color: #EB984E;
}

.btn-primary:focus, .btn-primary.focus {
  box-shadow: 0 0 0 0.2rem #EB984E;
}

.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: ##EB984E;
  border-color: ##EB984E;
}

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

.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem #EB984E;
}

.buttons input:focus {
  outline: none;
}

整个按钮缺少什么会导致这种橙色(#EB984E)?

最佳答案

您缺少的是 :focus 伪元素和 focus 类,即

.btn-primary:focus,
.btn-primary.focus, {
  color: #fff;
  background-color: #EB984E;
  border-color: #EB984E;
}

仅供引用,您的 CSS 中有一些错误:您在某些规则中使用 ##EB984E (即双 #),而不是 #EB984E.

另外,请引用一些关于如何设置按钮样式以实现可用性辅助功能的注意事项:

  • 您正在使用相同的悬停颜色 - 这应该是不同的颜色,以指示该按钮处于事件状态并可供单击。
  • 您还可以使用与焦点轮廓相同的颜色 - 此轮廓用于显示在通过键盘使用网站时哪个按钮具有焦点。通常会使用不同的颜色来突出显示这一点,但只要清楚哪个具有焦点就可以了。

现在,您的代码按照您想要的方式运行(但我强烈建议您在实际网站中考虑上述几点):)

.buttoncontainer {
  padding: 20px;
  text-align: center;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">

<style>
  .btn:focus,
  .btn.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem #EB984E;
  }
  
  .btn-primary {
    color: #fff;
    background-color: #EB984E;
    border-color: #EB984E;
  }
  
  .btn-primary:focus,
  .btn-primary.focus,
  .btn-primary:hover {
    color: #fff;
    background-color: #EB984E;
    border-color: #EB984E;
  }
  
  .btn-primary:focus,
  .btn-primary.focus {
    box-shadow: 0 0 0 0.2rem #EB984E;
  }
  
  .btn-primary.disabled,
  .btn-primary:disabled {
    color: #fff;
    background-color: #EB984E;
    border-color: #EB984E;
  }
  
  .btn-primary:not(:disabled):not(.disabled):active,
  .btn-primary:not(:disabled):not(.disabled).active,
  .show>.btn-primary.dropdown-toggle {
    color: #fff;
    background-color: #EB984E;
    border-color: #EB984E;
  }
  
  .btn-primary:not(:disabled):not(.disabled):active:focus,
  .btn-primary:not(:disabled):not(.disabled).active:focus,
  .show>.btn-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 0.2rem #EB984E;
  }
  
  .buttons input:focus {
    outline: none;
  }
</style>

<div class="buttoncontainer">
  <button class="btn btn-primary">One </button>
  <button class="btn btn-primary">Two</button>
  <button class="btn btn-primary">Three</button>
</div>

(仅供引用 - CSS 不包含在代码片段的 CSS 面板中,因为它被 Bootstrap include 覆盖。)

关于html - 单击后更改按钮属性的 Bootstrap CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63697612/

相关文章:

html - 更改 Bootstraps 轮播中的箭头颜色

选择元素选择的 Javascript 事件

html - DotAll 和多行正则表达式

javascript - 如何根据其他值从下拉菜单中隐藏元素?

javascript - Foundation Essential 包中缺少 CSS

html - 我需要按中心制作 'ul'(使用 Bootstrap)

javascript - 无法从特定的下拉菜单中选择项目(文本)?

javascript - 数据百分比属性更改的 CSS 转换

css - Bootstrap - 进度指示器

css - Bootstrap 4 导航栏不会在 Angular4 中崩溃