如何让VML在标准模式下工作?

时间:2010-10-07 19:53:51

标签: javascript internet-explorer vml

我希望能够在标准模式下使用vml对象而不是quirks模式。我发现散布的答案碎片却无法解决。 Raphael以某种方式将其拉下来,但我无法扭转它以弄清楚发生了什么。任何基本的工作示例都会很棒。

2 个答案:

答案 0 :(得分:7)

我想我已经弄清楚了。第1步是通过javascript导入vml名称空间。

document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', "#default#VML");

这使得一些随机的vml样本在怪癖模式下工作,但不是标准。关键是元素需要一个单位进行测量,如果没有提供单位,则怪异模式将假设为px。此外,形状必须使用position:absolute;设置样式,尽管线条显然不需要此部分。

这是一个有2个椭圆形的样本。两个椭圆都将以怪异模式渲染,但蓝色椭圆将不会以标准模式显示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
    <script>
        document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', "#default#VML");
    </script>
    <v:oval style="width: 100; height: 50" fillcolor="blue"></v:oval>
    <v:oval style="position: absolute; width: 100px; height: 50px" fillcolor="green"></v:oval>
</body>
</html>

答案 1 :(得分:0)

为什么不简单地使用Raphael本身而不是使用原始VML?拉斐尔的家伙在制作一个几乎无处不在的标准图书馆方面做得非常出色 - 利用他们的辛勤工作。