【问题标题】:Firefox does not render .svg properlyFirefox 无法正确呈现 .svg
【发布时间】:2022-01-20 02:39:27
【问题描述】:

我管理一个使用 .svg 文件作为插图的博客,您可以在此处查看实时示例:https://salarship.com/article/dress-fast-food-job-interview/

问题是 .svg 文件无法在 Firefox 上正确呈现。这是how the image looks on Firefoxhow it looks on other browsers。这是图像的原始文件:https://salarship.com/wp-content/uploads/2022/01/wear-job-interview-fast-food.svg

这个特定文件有问题吗,我该如何解决?我有数百篇关于这个问题的文章,有没有办法相对快速地修复每个图像?

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: debugging svg firefox cross-browser


【解决方案1】:

其中有一条路径,其中包含以下命令序列(为清楚起见而缩短):

... v 0 a 0.25,0.25 0 0 0 0,0.07 0.19,0.19 0 0 1 0,0.07 8.510071e11,8.510071e11 0 0 1 0,0.18 ...

半径为8.510071e11 的 arc 命令似乎会抛出 Firefox。这是一个错误。

由于半径如此之大的圆弧无论如何都是直的,因此可以更改顺序,以便使用v line 命令代替:

... v 0 a 0.25,0.25 0 0 0 0,0.07 0.19,0.19 0 0 1 0,0.07 v 0.18 ...

【讨论】:

  • 太完美了,似乎大多数浏览器和编辑器都将非常大的数字解释为 0。但是,Firefox 将它们解释为无穷大,这会给出不同的结果...
  • 你的解释毫无意义。 Infinitiy 的半径使圆弧成为一条直线,而半径为 0 则无法渲染。浏览器实现corrective algorithm 以实现可以解释的值,因此值 0 将始终被最小可能的半径(此处:0.09)替换。在这个阶段不处理非常大的半径,因为它们应该没有问题。我的预感是 Firefox 的 bug 处于渲染管道的后期阶段。
猜你喜欢
  • 2018-03-01
  • 1970-01-01
  • 2014-08-14
  • 2021-11-19
  • 2017-06-28
  • 2012-04-01
  • 2021-12-17
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多