本文介绍了SVG笔触和填充之间的空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

用相同的颜色填充和描边一个超过一定大小的stroke-width,会在两个绘制区域之间"产生一个奇怪的透明区域.这是怎么回事?

这在 Chrome 和 Firefox 中都会发生,所以它可能符合规范,但我在规范中找不到关于此行为的任何语言.

解决方案

我发现添加 stroke-linecap="round"style="stroke-dasharray: 1000, 1000;" 通过引入虚拟破折号来解决问题

<circle cx="100" cy="100" r="8"笔画=#000"笔画宽度=40"fill="#0F0" stroke-linecap="round" style="stroke-dasharray: 1000, 1000;"/></svg>

Filling and stroking a circle with the same color and a stroke-width exceeding a certain size, produces a strange transparent region "between" the two paint regions. What is going on?

This is happening in both Chrome and Firefox, so it may be to spec, but I couldn’t find any language in the spec about this behavior.

Fiddle

<svg viewBox="0 0 300 300">
  <circle cx="100" cy="100" r="8" 
    stroke="#000" stroke-width="40" 
    fill="#000"/>
</svg>

Produces this rendering:

解决方案

I found that adding stroke-linecap="round" style="stroke-dasharray: 1000, 1000;" fixes the issue by introducing virtual dashes

<svg viewBox="0 0 300 300">
  <circle cx="100" cy="100" r="8" 
    stroke="#000" stroke-width="40" 
    fill="#0F0" stroke-linecap="round" style="stroke-dasharray: 1000, 1000;" />
</svg>

这篇关于SVG笔触和填充之间的空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 21:45