gpt4 book ai didi

internet-explorer - IE9、IE8、SVG、VML 和文档类型

转载 作者:行者123 更新时间:2023-12-04 08:58:06 25 4
gpt4 key购买 nike

我正在我的 ASP.NET Web 应用程序中绘制形状。在 IE9 和其他浏览器中,我使用 SVG 来做这件事,而且效果很好。在 IE8 及以下版本中,我使用的是 VML。我发现 IE8 在 IE8 标准模式下(不使用兼容性 View )根本不显示 VML。

我的文档类型设置为 <!DOCTYPE html> .如果我完全去掉 doctype,IE8 会进入 quirks 模式并且工作正常,但是 IE9 然后进入它的 quirks 模式(而不是 IE9 标准)并且不显示 SVG。

这是在测试页面上发生的,因此除了包含包含 <svg> 的 div 的表单之外,没有其他任何内容。元素及其子元素或 VML 元素。

这里发生了什么?似乎我不应该更改不同浏览器的文档类型,并且 Stack Exchange 用户页面上的信誉图似乎以相同的方式工作(IE8 及以下的 VML,其他所有人的 SVG,HTML5 文档类型)...

最佳答案

您还需要检查以下几件事:

需要修改行为规则的选择器。

  • 设置元素的尺寸或位置时,单位不默认为 px。必须明确指定它才能工作。
  • 您不能在 DOM 之外创建 VML 元素:

  • .
    var vmlFrag = document.createDocumentFragment();
    vmlFrag.insertAdjacentHTML('beforeEnd',
    '<v:rect id="aRect" fillcolor="red"
    style="top:15px;left:20px;width:50px;height:30px;position:absolute;"></v:rect>'
    );
    document.body.appendChild(vmlFrag);
  • rect 元素将不会显示!您也不能修改其 CSS,因为您可能只会使浏览器崩溃。但是,有一个修复方法。将元素的外层HTML复制到自身中:

  • .
    var aRect = document.getElementById('aRect');
    aRect.outerHTML = aRect.outerHTML;

    关于internet-explorer - IE9、IE8、SVG、VML 和文档类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839240/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com