我正在尝试实现一个计数器,但现在我只使用HTML、CSS和Bootstrap。
<button class="btn btn-purple ts24r">+</button>
.btn-purple {
background-color: var(--purple);
color: var(--white);
}
.btn-purple:hover {
background-color: var(--green);
}
问题是,当我点击按钮时,它的背景色会消失,只有当我点击页面上的其他地方时才会再次出现。
按钮的三种状态:点击前、悬停和点击后
我尝试了下面的代码,乍一看是有效的,但现在按钮不是"可点击的";不再是红色(仅用于测试目的(,悬停时不会改变颜色。和以前一样,它只返回紫色,并允许在单击其他位置时悬停。
.btn-purple:focus {
background-color: red;
}
有没有办法让按钮接受多次点击,始终保持紫色,只有在悬停时才会改变(这是最初的状态(?
这似乎是MacOS和Chrome上Bootstrap的问题。
你可以做下面这样的事情来去除焦点:
<a class="btn btn-purple ts24r" onclick="this.blur();">+</a>
参考:如何删除点击按钮周围的焦点
是的,您可以为按钮尝试多个psuedo类。
.btn-purple:focus:hover {
background: red;
}
.btn {
cursor: pointer;
}
.btn-purple {
background-color: purple;
color: white;
}
.btn-purple:hover {
background-color: red;
}
.btn-purple:focus {
background: purple;
}
.btn-purple:focus:hover {
background: red;
}
<button class="btn btn-purple ts24r">-</button>
<button class="btn btn-purple ts24r">+</button>
button:focus
表示在单击另一个元素之前,按钮将保持在焦点上(不可单击(。
当按钮被激活时,button:active
适用。因此,如果您希望按钮(或任何元素(在单击时具有特定的颜色,则可以使用pseudo类。
我想你可以这样做:
.btn-purple {
background-color: purple;
}
.btn-purple:hover {
background-color: green;
}
.btn-purple:active{
background-color: purple;
}
<button class="btn btn-purple ts24r">+</button>
点击此处阅读更多