我已将SVG文件数据直接嵌入到我的html中。它在Chrome和Firefox中显示,但在IE11中它根本不显示。到SVG的pastebin链接是http://pastebin.com/eZpLXFfD
我尝试添加META TAG但无济于事。起初我认为它可能是IE兼容性视图问题,但切换该功能也不起作用。
<meta http-equiv="X-UA-Compatible" content="IE=8">
有任何帮助吗?我还可以提供哪些其他信息来帮助回答这个问题
答案 0 :(得分:26)
听起来好像你不是现代文档模式。当您处于标准模式时,Internet Explorer 11会显示SVG。如果您有x-ua-compatible
元标记,请确保将其设置为Edge,而不是早期模式。
<meta http-equiv="X-UA-Compatible" content="IE=edge">
您可以通过打开F12开发者工具并检查文档模式下拉列表(见右上角,当前&#34; Edge&#34;)或模拟选项卡来确定文档模式:
如果您没有x-ua-compatible
元标记(或标题),请务必使用将文档置于标准模式的文档类型,例如<!DOCTYPE html>
。
答案 1 :(得分:10)
我使用的4个内联svgs中有3个遇到了同样的问题,并且它们只在IE11上消失了(在一个案例中,部分)。
我在页面上有<meta http-equiv="x-ua-compatible" content="ie=edge">
。
最后,问题是svg文件上的额外剪切路径。我在Illustrator上打开了文件,删除了剪切路径(通常在图层的底部),现在它们都在工作。
答案 2 :(得分:2)
尝试了其他建议无济于事后,我发现此问题与我的样式有关。我不知道为什么,但是我发现我的SVG不可见,因为它们没有在DOM中占据一席之地。
实质上,我的SVG周围的容器的宽度为0,溢出为隐藏。
我通过在容器上设置宽度来解决此问题,但有可能针对该特定问题有更直接的解决方案。
答案 3 :(得分:1)
我明白了!该页面使用IE8模式呈现...已
<meta http-equiv="X-UA-Compatible" content="IE=8">
...将其更改为
<meta http-equiv="X-UA-Compatible" content="IE=9">
9,它有效!
答案 4 :(得分:1)
我遇到了这个问题,并通过删除了我在SVG上使用的宽度样式来解决了这个问题:
.svg-div img {
width: 200px; /* removed this */
height: auto;
}
答案 5 :(得分:0)
每个元素都有重复的样式属性。
style="opacity:0.8"
由于此错误,这肯定不会在Firefox上显示。如果它显示在Chrome上,则最有可能引发Chrome错误。
答案 6 :(得分:0)
检查浏览器是否为IE-
$ua = htmlentities($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, 'UTF-8');
if (preg_match('~MSIE|Internet Explorer~i', $ua) || (strpos($ua, 'Trident/7.0') !== false && strpos($ua, 'rv:11.0') !== false)) {
// do stuff for IE Here
}