【发布时间】:2016-10-16 08:42:16
【问题描述】:
我正在使用一个 SVG,我不希望 <circle> 的笔划在调整大小时缩放。当我将vector-effect="non-scaling-stroke" 添加到<circle> 时会发生什么,现在圆周基于viewport 而不是原来的viewBox。这是一个问题,因为在动画中使用stroke-dasharray 时,它引用了错误的圆周。
下面的 sn-p 显示了一个 stroke-dasharray 设置为两个相同大小的圆的周长和显示问题的右圆(使用视口;有效地将其周长加倍):
svg {
width: 400px;
height: auto;
fill: none;
stroke: #000;
stroke-width: 6;
stroke-dasharray: 252
}
<body>
<svg viewBox="0 0 200 100">
<circle cx="50" cy="50" r="40" />
<circle cx="150" cy="50" r="40" vector-effect="non-scaling-stroke" />
</svg>
</body>
有什么方法可以告诉<circle> 尊重 viewBox 而不是 viewport?
【问题讨论】:
标签: svg