目标:
我正在尝试获取一个INLINE SVG
元素来填充父元素的全部可用宽度。我可以使用img
andobject
标记轻松实现相同的效果来引用 svg 文件,但我想使用inline svg
,因为我正在使用 javascript 为 svg 内部元素设置动画。
问题:
我可以在 Firefox 中实现这一点,也可以在 Chrome 中进行一些调整,但是 safari 和 IE9 和 IE10 不会发挥作用。
- svg 的内部内容并不总是在所有屏幕宽度中填充 svg 元素
- webkit 添加了一个神秘的 padding/height (在这个例子中,padding 在 svg 元素内) SVG 元素的高度应该是 auto 并包裹内部 svg 内容。
主要问题:
是否有用于响应式 INLINE SVG 的跨浏览器解决方案:查看 IE9 & 10 和 -webkit-Safari 中的示例,并注意 SVG 元素中不需要的额外高度(青色)。
http://jsfiddle.net/David_Knowles/9tUAd/
<div class="block">stuff</div>
<div class="wrap">
<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 550 350" xml:space="preserve" preserveAspectRatio="xMinYMin meet">
<rect x="0" y="0" width="550" height="350"/>
<polyline points="0,0 0,350 550,350"/>
<text x="0" y="50%" fill="#ffffff" stroke="none" width="100%">The text</text>
</svg>
</div>
<div class="block">stuff</div>