我正在使用本地 HTML5 文件——它有<!DOCTYPE html>
在顶部。我在里面放了这样的东西:
<svg height="2em" width="3em" preserveAspectRatio="none" viewBox="0 0 100 100">
<rect x="0" y="0" width="100" height="100" fill="red"/>
</svg>
(没有命名空间,感谢 HTML5!),并且它在 Chrome 和 FF4 beta 中显示得很好。
现在我想通过 JS 创建同样的东西。我正在使用原型,所以我写了类似的内容:
var box = new Element('svg', {'width':'3em', 'height':'2em', 'preserveAspectRatio': 'none', 'viewBox': '0 0 100 100'});
box.appendChild(new Element('rect', {fill:'red', x:'0', y:'0', width:'100', height:'100' }));
container.appendChild(box);
我可以在 Firebug / DOM 检查器(FF 和 Chrome)中看到它正在为此创建相同的 DOM 结构。
我看到的唯一区别是属性(“preserveAspectRatio”和“viewBox”)都是小写的,但我尝试将第一个测试(静态 HTML)中的属性更改为全小写,并且它仍然工作正常,所以我不认为这是问题所在。
HTML5 SVG 功能是否仅限于静态 HTML,我仍然需要使用命名空间来通过 JS 添加 SVG 内容,还是还缺少其他内容?