我有一个透过Unicode得到的齿轮图标,并尝试在focus
和hover
事件上使其旋转。
@keyframes spin
{
0 {transform: rotate(0deg);}
100% {transform: rotate(359deg);}
}
a[title*='important']::after {content: '\2699';}
a[title*='important']:hover::after
{
animation: spin 5s infinite;
outline: #00f solid 2px;
}
<a href="#" title="important">link</a>
我添加了蓝色的outline
来确认我选择正确。为什么CSS生成的内容不能动画化,如何解决?
我进行了一些测试,并发现了一些非常具有讽刺意味的结果!
- IE11可以
- Chrome 72失败。
- Waterfox 56失败。
- Firefox 66失败。
- Safari 11失败。
有关使“懒汉”浏览器工作的建议?
更新
bijal的答案使用display: inline-block;
成功地将齿轮动画化,但它会在一个圆圈中移动而不是简单地旋转。
如果你为伪元素应用了background-color
并且注意到宽度比预期的宽(例如,20像素的齿轮的50像素宽度),请使用text-indent: 0;
。如果你对代码做了其他操作,请进入开发者工具并开始取消选中已应用的属性/值对,直到问题被揭示出来。