我有渲染 SVG 的 HTML 页面,并且在现代浏览器和 IE9+ 中一切正常。然而,IE8 不显示 svg,我看到的只是空框。我试图让 IE8 和旧版浏览器根本不呈现它,但所有尝试通常等都display: none;
失败width: 0
了。我试图通过 JS 调用隐藏它,但似乎没有任何效果。如果我直接在 HTML 中更改宽度/高度,它似乎可以工作。我的 SVG 部分在下面,如果有人能告诉我如何让 IE 不显示这个 SVG 标签,那就太好了。
<div class="slide panel">
<svg width="1000" height="500">
<mask width="1000" height="500" maskUnits="userSpaceOnUse" maskContentUnits="userSpaceOnUse" id="m1">
<circle cx="200" cy="200" r="200" fill="white" />
</mask>
<image preserveAspectRatio="xMidYMid slice" mask="url(#m1)" xlink:href="<?php echo get_template_directory_uri(); ?>/images/banner1.jpg" width="1000" height="500" class="target"/>
</svg>
<!-- the rest of HTML code -->
编辑:这是 wordpress 站点,因此一个选项是检测浏览器在 php 中发出的请求,并仅为 IE8 返回不同的 HTML。这是可靠的解决方案吗?它通常是如何完成的?
EDIT2:找到解决方案..我最终将 svg 包装在另一个 div 中并将其设置display: none;
为仅适用于 IE8,通过 JS、css 等更改大小在 SVG 标签本身上根本不起作用.. 上帝,我讨厌 IE:/