我需要在 Dart 中动态创建 @keyframe 规则并将它们添加到文档样式表中。这是我正在尝试做的 JS 示例:
var styleSheet = document.styleSheets[0];
var rule = '@-webkit-keyframes { ... }';
styleSheet.insertRule(rule, 0);
Run Code Online (Sandbox Code Playgroud)
它提出了两个问题:
如何在 Dart 中创建 @keyframe 规则?API 文档中有一个 CSSKeyframesRule,但最新的 Dart 编辑器说没有这种类型,并且当我尝试使用它时 Dartium 会抛出异常(它是否已被弃用?)。我想它不仅仅是像 JS 中的字符串,因为 Dart 应该处理供应商前缀?
如果我创建规则,如何将其插入样式表中。StyleSheet类似乎没有任何像insertRule这样的方法。我当然可以只创建具体样式节点并设置其innerHTML,但我不想为每个关键帧规则创建单独的节点。
提前致谢。
我在Javascript中知道如何动态添加样式表.这可以使用以下代码完成:
var sheet = document.createElement('style');
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用Dart(https://www.dartlang.org/)时,就像这样:
CssStyleSheet sheet = document.createElement('style');
Run Code Online (Sandbox Code Playgroud)
然后Dart编辑器告诉我"类型元素的值不能分配给CssStyleSheet类型的变量".
我也尝试过这样:
CssStyleSheet styleSheet = new CssStyleSheet();
Run Code Online (Sandbox Code Playgroud)
但这给了我警告"类CssStyleSheet没有默认构造函数"
还有这个:
CssStyleSheet sheet = DomImplementation.createCssStyleSheet('mySheet', '');
Run Code Online (Sandbox Code Playgroud)
符合"无法使用静态访问访问实例成员'createCssStyleSheet'".
所以我的问题是:如何在Dart中创建一个CssStyleSheet,这样我就可以使用像insertRule(rule, index)和的方法deleteRule(index)?
亲切的问候,
亨德里克