gpt4 book ai didi

SVG,矢量效果 ="non-scaling-stroke"和 IE

转载 作者:行者123 更新时间:2023-12-04 01:03:54 24 4
gpt4 key购买 nike

据我了解,SVG 属性 vector-effect="non-scaling-stroke"如果/当缩放或拉伸(stretch) SVG 对象时,应该防止笔画变形(变粗或变细)。

例如 - 在这个 fiddle ( http://jsfiddle.net/1cj0ovae/5/ )中,我有两个 SVG 对象;两者都比高度宽 5 倍。因为两者的 View 框都需要一个正方形,所以 SVG 被拉伸(stretch)和扭曲。

在上面的 SVG 中 - 绿色路径被扭曲了 - 它比预期的要厚得多( stroke-width="2" )。

然而,在较低的 SVG 中,红色路径“正确”显示 - 2px 粗的笔划 - 因为它具有 vector-effect="non-scaling-stroke"属性集。

这似乎在 Chrome、Safari 和 Firefox 中有效,但甚至在最新版本的 IE(例如 IE10)中也无效。

这是一个IE错误吗?有解决方法吗?

最佳答案

矢量效果是 SVG 1.2 tiny 的一部分以及即将到来且尚未完成的 SVG 2 规范。

IE 只针对没有矢量效果的 SVG 1.1。其他 UA 已经精心挑选了 SVG 1.2 的一些部分,例如矢量效果,但当前的 UA 没有实现这一切(我认为是 Opera 12)。

要解决这个问题,请使用 javascript 确定笔画的宽度。 IE。计算出应用于形状的变换和将其倒数应用于笔画宽度之间的差异。当我在 Firefox 中实现它时,我发现它并不简单。

关于SVG,矢量效果 ="non-scaling-stroke"和 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com