【发布时间】:2010-10-07 19:53:51
【问题描述】:
我希望能够在以标准模式而不是 quirks 模式呈现的页面上使用 vml 对象。我发现散落在各处的答案片段,但无法弄清楚。 Raphael 以某种方式将其拉下来,但我无法扭转它以弄清楚发生了什么。任何基本的工作示例都会很棒。
【问题讨论】:
标签: javascript internet-explorer vml
我希望能够在以标准模式而不是 quirks 模式呈现的页面上使用 vml 对象。我发现散落在各处的答案片段,但无法弄清楚。 Raphael 以某种方式将其拉下来,但我无法扭转它以弄清楚发生了什么。任何基本的工作示例都会很棒。
【问题讨论】:
标签: javascript internet-explorer vml
我想我已经弄清楚了。第 1 步是通过 javascript 导入 vml 命名空间。
document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', "#default#VML");
这让一些随机 vml 样本在怪癖模式下工作,但不是标准模式。它们的关键是元素需要一个测量单位,如果未提供单位,怪癖模式将假定为 px。形状也必须使用position:absolute; 设置样式,尽管线条显然不需要这部分。
这是一个包含 2 个椭圆的示例。两个椭圆都将在 quirks 模式下呈现,但蓝色椭圆不会在标准模式下显示。
<!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>
【讨论】:
您为什么不简单地使用 Raphael 本身而不是使用原始 VML? Raphael 的家伙们在制作一个几乎可以在任何地方使用的标准库方面做得非常出色 - 充分利用他们的辛勤工作。
【讨论】: