CSS伪类:按钮点击后焦点

shu*_*wal 10 html css html5 css3

我正在使用一些基本的CSS动画button.问题是:focus当我们在键盘上按Tab键时,伪类甚至可以工作.所以我想这:focus应该只在我点击按钮时才有效,即仅在激活时.

这是代码:

button {
  background: #c33;
  width: 150px;
  height: 30px;
  border: 0;
  color: #fff;
}

button:after {
  content: 'RENT ME';
  display: block;
}

button:active,
button:focus {
  background: green;
}

button:active:after,
button:focus:after {
  display: block;
  animation: shake 1s linear, revert 2s 1s;
  position: relative;
}

@keyframes shake {
  from {
    content: "O";
    font-family: FontAwesome;
    transform: rotate(0deg);
  }
  to {
    content: "O";
    font-family: FontAwesome;
    transform: rotate(360deg);
  }
}

@keyframes revert {
  0% {
    content: 'ADDED TO CART';
    left: -60px
  }
  50% {
    content: 'ADDED TO CART';
    left: 0px;
  }
  100% {
    content: 'ADDED TO CART';
    left: 0px;
  }
}
Run Code Online (Sandbox Code Playgroud)
<button></button>
<button></button>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,按钮变为green按下我想要避免的选项卡.是否有纯CSS解决方案.

的jsfiddle

小智 6

使用tabIndex="-1"上的按钮,如果你不希望按钮压片的时候成为焦点

<button tabIndex="-1"></button>
Run Code Online (Sandbox Code Playgroud)

  • 这将使需要使用键盘访问Web界面的人无法访问该按钮.应该真正避免故意破坏可访问性...... (3认同)

Que*_*tin 4

如果按钮处于活动状态,那么它将始终同时获得焦点。

所以只提供一条:active规则,也可以不提供任何:focus规则。

  • CSS 并不是为完成这项工作而设计的。 (2认同)
  • 不,没有。 (2认同)