在我的网站内部,我嵌入了几个svg。在Chrome,Firefox,IE(9+)和Safari中,它们似乎都可以正常工作。只要有图像包含在SVG中,Safari就不会渲染图像。Svg内部没有显示图像
基于前人的类似题目我已经试过如下:
SVG <image> elements not displaying in Safari - 封闭
<use>
标签这样<use></use>
SVG Image dosen't appear in Safari - 我不觉得这非常有用,因为这是删除svg的aprt。
Not able to render SVG image in Safari - 在头部添加
<meta http-equiv="Content-Type" content="application/xhtml+xml">
。
除此之外,我真的不知道还有什么可以尝试。也许有一件更有趣的事情要注意的是,在我的页面中,图像不显示,但我可以在safari中打开svg文件(只是文件),它将被正确渲染。此外,它在浏览器中作为文件打开后,也会在页面内呈现。我用img标签将svg嵌入到页面中。
<img src="mysvg.svg" class="center-block"/>
这是我的SVG:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="328px" height="328px" viewBox="0 0 328 328" enable-background="new 0 0 328 328" xml:space="preserve">
<g>
<defs>
<polygon id="SVGID_1_" points="1.414,164.001 164,326.586 326.586,164.001 164,1.414 "/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" overflow="visible"></use>
</clipPath>
<g id="DSC_x5F_0112-2.psd" clip-path="url(#SVGID_2_)">
<g id="DSC_x5F_0112-2.psd_1_" enable-background="new ">
<image overflow="visible" width="338" height="532" id="DSC_x5F_0112-2" xlink:href="data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QNhaHR0cDov
.....SLKPF+7j+acOZPZjmsw4Q0f0L/6k1fu3WFvY/wDEB5o0d7H7/wD7SPFgPzVE54J9/wBI/qez5vei
r/fdeaS//9k=" transform="matrix(0.9818 0 0 0.9818 -2.7197 -11.064)">
</image>
</g>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M164,328.001L0,164.002L164,0.001l164,164.001L164,328.001z M1.414,164.002L164,326.587l162.586-162.585
L164,1.415L1.414,164.002z"/>
</g>
</svg>
我已经减少的base64图像串,以缩短代码。完整的svg可以在here找到。
更新:要清楚,svg显示在浏览器(safari),但图像丢失(我可以看到只是边框)。
Safari与Chrome比较:Safari在>之后放入'''! –
感谢您的评论,但这仍然无法解决我的问题。另外,当我在Safari中检查元素时,只需打开svg,我无法确认您的评论是否正确。它对我来说很好。 – SuperMan
最有可能b。因为这种差异,你有错误的输出。在Web Inspector资源选项卡中打开源代码,它应该显示元素“”。打开DOM元素''是在错误的地方。至少在我的Safari版本中。 –