最近在执行的手机版网页专案,针对其中许多 icons,我都使用了 SVG 图片来取代高解析装置下表现地惨不忍睹的 PNG 图片,锐利的向量图片放大缩小也不怕,真棒。
但在进行不同装置的测试时,发现在某些 Android 上用原生浏览器浏览时,某些 SVG 图片特别模糊,毛边都相当明显,但又不是每张 SVG 图片都是如此,相当诡异。
经过比较发现,在我这个专案的情境中,只有被套上 transform: rotate 或 position: fixed,且是 background-image 方式使用的 SVG 图片会有这个问题。
上 stackoverflow 搜寻看看,果然有类似的问题被提出(虽然提问者的情境与我不同),而也有人提出了 workaround 来暂时解决这个问题。
而讨论串中被提到的 workaround 虽然也没有对为何可以这样解决的原理做太多解释,但也满有意思的,是在 SVG 档案中嵌入一个透明(opacity=0)的文字物件:
微信现在用了自己的x5内核,,,
用这个trick之后,svg在原生浏览器下可以清楚显示,,,