我在 Safari 中遇到了一个奇怪的 SVG 渲染问题。我有一个像圆形加载器一样带有笔画动画的圆圈,但是由于某种原因,一旦我添加了stroke-dashoffset或stroke-dasharray,渲染就关闭了。
gif供参考:
(来源:askenielsen.dk)
一旦应用了其中一种样式,渲染似乎会变得更加锯齿状。
它看起来并不多,但不止一个圆圈,它变得非常明显:
(来源:askenielsen.dk)
在视网膜显示器上的 Safari 或在 IE、Firefox、Chrome 等中看起来不错。
在这两种浏览器中,圆圈的缩放或笔划宽度都不会改变问题。
SVG
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 134 134" enable-background="new 0 0 134 134" xml:space="preserve" width="134px" height="134px">
<path class="circle" d="M67,6c33.7,0,61,27.3,61,61c0,33.7-27.3,61-61,61c-33.7,0-61-27.3-61-61C6,33.3,33.3,6,67,6"/>
<path class="circle" d="M67,13c29.8,0,54,24.2,54,54s-24.2,54-54,54S13,96.8,13,67S37.2,13,67,13"/>
<path class="circle" d="M67,20c26,0,47,21,47,47s-21,47-47,47S20,93,20,67S41,20,67,20"/>
</svg>
CSS
.circle {
fill: none;
stroke: red;
stroke-width: 4px;
/* THE STYLE THAT MESSES UP THE RENDERING */
stroke-dasharray: 200px, 200px;
}
你可以在这里测试它。
有任何想法吗?