IE 11 无法识别 SVG 翻译

Posted

技术标签:

【中文标题】IE 11 无法识别 SVG 翻译【英文标题】:IE 11 not recognizing SVG translate 【发布时间】:2019-12-25 04:01:14 【问题描述】:

我在运行时生成以下 SVG 代码,它在 Chrome 中呈现良好,但在 IE 11 中,翻译被忽略。

我尝试将宽度、高度、视图框和变换属性向下移动到第一个“g”元素,但没有成功。

<html><head></head><body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 75"   version="1.1" transform="translate(4, 35)">
	<g fill="none" stroke="none" stroke->
		<path stroke="#333333" stroke- transform="translate(0 -3)" d="M 0.5 3.7895 L 0.5 35.5 L 12.8536 35.5 L 16.4461 38.7895 L 20.3642 35.5 L 31.5 35.5 L 31.5 3.7895 L 0.5 3.7895 Z" />
			<text id="55" font-family="NotoSans-Bold, Noto Sans" font-size="14" font-weight="bold" fill="#333333">
				<tspan x="12" y="21">1</tspan>
			</text>
			<rect class="slider-handle" style="fill: rgb(23, 119, 207);" x="12" y="44"   rx="1" viewBox="0 0 10 24" />     
	</g>
</svg>
</body></html>

我没有收到任何错误消息,但 svg 未按预期在 IE11 中转换其位置。

【问题讨论】:

【参考方案1】:

IE 不支持 &lt;svg&gt; 元素上的 transform 属性,因为该特性是 new in SVG 2 而 IE 确实只支持 SVG 1.1

您可以将变换移动到 &lt;svg&gt; 元素的 &lt;g&gt; 子元素,IE 会在那里识别它,但您还需要更改 viewBox,因为变换仅应用于 @987654325 的子元素@元素。

<html><head></head><body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="4 35 32 75"   version="1.1">
	<g fill="none" stroke="none" stroke-  transform="translate(4, 35)">
		<path stroke="#333333" stroke- transform="translate(0 -3)" d="M 0.5 3.7895 L 0.5 35.5 L 12.8536 35.5 L 16.4461 38.7895 L 20.3642 35.5 L 31.5 35.5 L 31.5 3.7895 L 0.5 3.7895 Z" />
			<text id="55" font-family="NotoSans-Bold, Noto Sans" font-size="14" font-weight="bold" fill="#333333">
				<tspan x="12" y="21">1</tspan>
			</text>
			<rect class="slider-handle" style="fill: rgb(23, 119, 207);" x="12" y="44"   rx="1" />     
	</g>
</svg>
</body></html>

【讨论】:

【参考方案2】:

与其拥有transform属性,不如将transform放入style属性中。这应该可以。

【讨论】:

这实际上是我们最终做的。尽管罗伯特回答了我提出的问题,但实际上并没有解决问题。不过 CSS 效果很好。

以上是关于IE 11 无法识别 SVG 翻译的主要内容,如果未能解决你的问题,请参考以下文章

解决Iconfont无法识别svg的问题

win10ie浏览器无法识别aw2000+扫描仪

IE 无法识别 jQuery 选择器

在 IE 的 jQuery Ajax 成功函数中无法识别选择器

Edge 无法识别自签名的受信任根证书

ie 导出不行,不兼容问题,或只出现后缀文件无法识别