CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Sass Keyframes动画mixin生成无效的CSS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下关键帧mixin,但它似乎生成无效的CSS:
@mixin keyframes($animationName)
{
    @-webkit-keyframes $animationName {
        @content;
    }
    @-moz-keyframes $animationName {
        @content;
    }
    @-o-keyframes $animationName {
        @content;
    }
    @keyframes $animationName {
        @content;
    }
}

@include keyframes(icon-onE) {
        0% {
          opacity: 1;
        }
        33% {
          opacity: 0;
        }
        66% {
          opacity: 0;
        }
        100% {
          opacity: 0;
        }
}

这是输出:

@-webkit-keyframes $animationName {
  0% {
    opacity: 1;
  }
  33% {
    opacity: 0;
  }
  66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@-moz-keyframes $animationName {
  0% {
    opacity: 1;
  }
  33% {
    opacity: 0;
  }
  66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@-o-keyframes $animationName {
  0% {
    opacity: 1;
  }
  33% {
    opacity: 0;
  }
  66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes $animationName {
  0% {
    opacity: 1;
  }
  33% {
    opacity: 0;
  }
  66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

它不是将关键帧的名称设置为icon-one,而是写出$animationName.

解决方法

您需要对关键帧名称的变量使用字符串插值.你的关键帧mixin需要像这样写:
@mixin keyframes($animationName)
{
    @-webkit-keyframes #{$animationNamE} {
        @content;
    }
    @-moz-keyframes #{$animationNamE}  {
        @content;
    }
    @-o-keyframes #{$animationNamE} {
        @content;
    }
    @keyframes #{$animationNamE} {
        @content;
    }
}

注意keyframes mixin that comes with Compass does this.

GitHub上存在一个问题,表明interpolation was not required in certain versions of Sass (possibly limited to 3.3.x).然而,Sass的作者认为它是一个错误:

大佬总结

以上是大佬教程为你收集整理的Sass Keyframes动画mixin生成无效的CSS全部内容,希望文章能够帮你解决Sass Keyframes动画mixin生成无效的CSS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。