如何在 Dart 中创建 CSS 关键帧规则

Arm*_*yan 5 dart

我需要在 Dart 中动态创建 @keyframe 规则并将它们添加到文档样式表中。这是我正在尝试做的 JS 示例:

var styleSheet = document.styleSheets[0];
var rule = '@-webkit-keyframes { ... }';
styleSheet.insertRule(rule, 0);
Run Code Online (Sandbox Code Playgroud)

它提出了两个问题:

  1. 如何在 Dart 中创建 @keyframe 规则?API 文档中有一个 CSSKeyframesRule,但最新的 Dart 编辑器说没有这种类型,并且当我尝试使用它时 Dartium 会抛出异常(它是否已被弃用?)。我想它不仅仅是像 JS 中的字符串,因为 Dart 应该处理供应商前缀?

  2. 如果我创建规则,如何将其插入样式表中。StyleSheet类似乎没有任何像insertRule这样的方法。我当然可以只创建具体样式节点并设置其innerHTML,但我不想为每个关键帧规则创建单独的节点。

提前致谢。

Ale*_*uin 4

下面的代码似乎可以工作。

void main() {
  final styleSheet = document.styleSheets[0] as CssStyleSheet;
  final rule = '@-webkit-keyframes mymove { from {top:0px;} to {top:200px;} }';
  styleSheet.insertRule(rule, 0);
}
Run Code Online (Sandbox Code Playgroud)