2017-04-12 88 views
0

我下载了一些使用viewbox属性的16x16 SVG图标来缩放原始代码,以便下载时可放入16x16画布。现在我所遇到的是,我无法从外部文件插入SVG,因为viewbox属性只是无法处理它。如果我将SVG代码内联,那么它就可以工作。为什么SVG viewbox属性仅适用于内联SVG?

我错过了什么,或者这是怎么回事?

这是代码。

<?xml version="1.0" encoding="utf-8"?> 
 
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> 
 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="16" viewbox="0 0 48 48" width="16"> 
 
    <path clip-rule="evenodd" d="M37,47H11c-2.209,0-4-1.791-4-4V5c0-2.209,1.791-4,4-4h18.973 
 
    c0.002,0,0.005,0,0.007,0h0.02H30c0.32,0,0.593,0.161,0.776,0.395l9.829,9.829C40.84,11.407,41,11.68,41,12l0,0v0.021                         
 
    c0,0.002,0,0.003,0,0.005V43C41,45.209,39.209,47,37,47z M31,4.381V11h6.619L31,4.381z M39,13h-9c-0.553,0-1-0.448-1-1V3H11 
 
    C9.896,3,9,3.896,9,5v38c0,1.104,0.896,2,2,2h26c1.104,0,2-0.896,2-2V13z M33,39H15c-0.553,0-1-0.447-1-1c0-0.552,0.447-1,1-1h18 
 
    c0.553,0,1,0.448,1,1C34,38.553,33.553,39,33,39z M33,31H15c-0.553,0-1-0.447-1-1c0-0.552,0.447-1,1-1h18c0.553,0,1,0.448,1,1 
 
    C34,30.553,33.553,31,33,31z M33,23H15c-0.553,0-1-0.447-1-1c0-0.552,0.447-1,1-1h18c0.553,0,1,0.448,1,1C34,22.553,33.553,23,33,23 z" 
 
    fill-rule="evenodd"/> 
 
</svg>

+0

外部SVGs有内联SVGs没有要求。例如'xmlns'属性和浏览器同源限制。如果没有关于如何加载SVG的更多信息,以及它的内容是什么,我们无法真正帮助您。 –

+0

还要注意,该属性被称为viewBox而不是viewbox。对于内联来说,这种区别并不重要,因为它是独立的。 –

+0

我已更新帖子并添加了代码。 *更新*:我改变了viewboxviewBox像罗伯特建议,现在它工作,如果我嵌入外部文件。谢谢。 – chatterb0x

回答

0

注意,这不是viewBoxviewbox - 浏览器有时可能会救你,但并非总是如此。

见的全部细节如下: https://jsfiddle.net/t88pLgbb/4/

+0

你应该添加代码片段到你的答案以及:) –