代码之家  ›  专栏  ›  技术社区  ›  lincolnk

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

  •  5
  • lincolnk  · 技术社区  · 14 年前

    我希望能够使用标准模式而不是怪癖模式的页面呈现上的VML对象。我发现答案的碎片散落在周围,但无法弄清楚。 Raphael 不知怎的把它拔出来了,但我无法逆转它来搞清楚到底发生了什么。任何基本的工作例子都是很好的。

    2 回复  |  直到 14 年前
        1
  •  7
  •   lincolnk    14 年前

    我想我已经弄明白了。步骤1是通过javascript导入vml名称空间。

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

    这使得一些随机的vml样本在奇怪的模式下工作,但不是标准模式。它们的关键是元素需要一个测量单位,如果没有提供一个单位,那么怪癖模式将假定为px。此外,形状必须与 position:absolute; 虽然线条显然不需要这个部分。

    这是一个有两个椭圆的样品。两个椭圆都将以怪癖模式呈现,但蓝色椭圆不会以标准模式显示。

    <!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>
    
        2
  •  0
  •   KJ Saxena    14 年前

    为什么你不直接使用拉斐尔本身而不是原始的vml?拉斐尔人已经做了一个伟大的工作,创造了一个标准的图书馆,几乎可以在任何地方工作-利用他们的辛勤工作。