2013-07-17 146 views
8

在一个简单的SVG元素中,我有一个图像。Svg图像不显示在Firefox中

  • 铬:版本28 - 完美的作品
  • 火狐:22.0 - 无图像绘制
  • 歌剧:12.16 - 图像显示大于正常的4倍

代码:

 
    <svg width="500px" height="500px" viewBox="0 0 70 70"> 
     <image x="0" y="0" width="10" height="10" 
       id="knight" xlink:href="/images/knight.svg" /> 
    </svg> 
+0

Knight.svg文件:https://docs.google.com/file/d/0B4duJ7F-vg_fWFh0c2dGRnpERWc/edit?usp=sharing –

+0

这是一个SVG图像检查我的其他评论的链接。您可以使用文本编辑器打开它并查看svg内容。 –

回答

6

您的SVG不被缩放以适合你的10×10图像矩形,因为它没有视框图像。 SVG渲染器需要知道SVG内容的尺寸才能知道如何缩放它。这就是viewBox属性的用途。

尝试将以下内容添加到knight.svg中的根元素<svg>元素中。

viewBox="0 0 45 45" 

此外,您需要为svg和xlink定义您的命名空间。虽然也许你刚刚删除了那些清晰(?)。

+1

谢谢,它工作完美。是的,为了清晰起见,我删除了命名空间。 –

1

你的骑士的尺寸是45 x 45像素。左上角(10 x 10)像素为空白。

您要求在<image>标记中显示左上角的图像,以便Firefox正确显示任何内容,因为这里没有任何内容。

如果你想看到的骑士,让<image>宽度和高度45相匹配的基础knight.svg尺寸。

无论是镀铬,也不歌剧似乎正确显示

An ‘image’ element establishes a new viewport for the referenced file as described in Establishing a new viewport. The bounds for the new viewport are defined by attributes ‘x’, ‘y’, ‘width’ and ‘height’