CSS 动画和生成的内容没有动画

标签 css css-animations

<分区>

我有一个通过 Unicode 编码的齿轮图标,我试图让它在 focushover 事件上旋转。

@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>

我添加了蓝色的轮廓以确认我选择是正确的。为什么 CSS 生成的内容没有动画,我该如何解决?


我做了一些测试,发现了一些非常讽刺的结果!

  • IE11 有效
  • Chrome 72 失败。
  • Waterfox 56 失败。
  • Firefox 66 失败。
  • Safari 11 失败。

关于让“懒鬼”浏览器正常工作的建议?


更新

bijal 的答案是使用 display: inline-block; 设法为齿轮设置动画但是它绕着圆圈移动而不是简单地旋转。

如果您将 background-color 应用于伪元素并注意到宽度比您预期的要宽(例如,50 像素宽度对应 20px 齿轮)使用 text-indent : 0;。如果您对代码进行了一些其他操作,请进入您的开发人员工具并开始取消选中已应用的属性/值对,直到问题被发现。

最佳答案

您可以使用它,尝试应用 display: inline-block 它会起作用。

    a[title*='important']:hover::after{
      display: inline-block;
      animation: spin 5s infinite; 
      outline: #00f solid 2px;
    }

关于CSS 动画和生成的内容没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55946542/

相关文章:

CSS Spritesheet 动画一直向左移动

angular - 滚动到 angular2 时动画进入 View

css - 如何定义css动画?

javascript - 延迟新页面加载,直到动画完成

css - 动画时边界半径消失

html - 使用动画 css 属性不工作使 div 间歇性出现

javascript - 移动 View 中不透明的意外行为

html - 如何在我的 HTML 中包含此字体?

html - 如何阻止 header 中的 css 格式化 html 中的其他对象

javascript - 如何将 "fill_parent"值设置为元素的宽度?