微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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%" />

这似乎在各地工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。