html5 – 跨浏览器SVG preserveAspectRatio

我正在尝试在< img />内的SVG图形标签,适合(无裁剪)标签内,保留宽高比。我在Inkscape中创建了SVG。除了Internet Explorer 9之外,所有浏览器都按预期方式工作。

为了使其在IE 9上工作,我不得不添加viewBox =“0 0 580 220”和preserveAspectRatio =“xMidYMid meet”,并删除width =“580”和height =“220”SVG属性

<svg viewBox="0 0 580 220" preserveAspectRatio="xMidYMid meet">...</svg>

这似乎在所有地方都可以工作,直到我在Webkit上尝试过,而< img />标签纵向拉伸,尽管SVG的宽高比确实保持不变。

当我放回width =“580”和height =“220”属性时,它适用于Webkit,但在IE 9上,aspectr比率丢失。

是否有针对此行为的跨浏览器解决方案?

解决方法

好像我发现解决方案:

您需要保持SVG中的宽度和高度属性

<svg
    width="580"
    height="220"
    viewBox="0 0 580 220"
    preserveAspectRatio="xMidYMid meet"
>...</svg>

并且要使其在IE 9上工作,您需要至少指定< img />标签

<img src="your.svg" style="width: 100%" />

这似乎在各地工作。

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码