Hen*_*Jan 5 dom stylesheet dart dart-html
我在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)?
亲切的问候,
亨德里克
GünterZöchbauer的答案帮助我找到了解决方案(请参阅我对他的回答的评论).
这有效:
import 'dart:html';
main () {
// create a stylesheet element
StyleElement styleElement = new StyleElement();
document.head.append(styleElement);
// use the styleSheet from that
CssStyleSheet sheet = styleElement.sheet;
final rule = 'div { border: 1px solid red; }';
sheet.insertRule(rule, 0);
}
Run Code Online (Sandbox Code Playgroud)
我尝试了它,它对我有用:
import 'dart:html' as dom;
main () {
dom.document.head.append(new dom.StyleElement());
final styleSheet = dom.document.styleSheets[0] as dom.CssStyleSheet;
final rule = 'div { color: blue; }';
styleSheet.insertRule(rule, 0);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |