css - 在纯 CSS 中点击元素时触发动画

标签 css css-transitions

假设我有一个简单的元素:

<a href="#" id="btn" onclick="return false">Click</a>

现在我可以通过 :active 改变这个元素的外观:

#btn:active {
    background: red;
}

然而,我想要的是,在我单击该元素后,该元素将保持红色大约一秒钟,而不更改 HTML(因此没有复选框 hack)或 javascript。有没有可以滥用的聪明技巧?

JsFiddle here

最佳答案

回答我自己的问题。通过滥用 :not 伪类,我们可以在点击发生后触发动画:

#btn:not(:active) {
    /* now keep red background for 1s */
    transition: background-color 1000ms step-end;
}

#btn:active {
    background: red;
}

关于css - 在纯 CSS 中点击元素时触发动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18376815/

相关文章:

html - 变换 : rotate is creating unwanted white space

css - 在 Chrome 上转换字母间距

css - 使用 CSS 过渡文本位置

css - 最简单的css,js弹窗

css - '属性 : 0' or ' property: 0px' in CSS?

html - 将 div 内的特定 ul 指定为列表样式 :none to

css - 为什么我的溢出省略号在 Chrome 中被截断了?

css - 填充父 div 的剩余宽度(非 flexbox 或 calc)

ios - CSS3 下拉菜单和 iOS 问题

javascript - 变换:缩放垂直对齐的元素