SVG 描边宽度在边界矩形内扩展

问题描述 投票:0回答:2

我已经开始使用 SVG,但(很快)遇到了障碍。

我正在尝试找到一种方法在矩形周围添加边框,但它只能在内部“扩展”。目前我只是在矩形周围绘制一条路径并使用描边宽度。当与 css 过渡一起使用时,这会达到显示“填充”动画的预期效果。但我不希望它扩展到矩形的边界之外。看图片

enter image description here

有路径

enter image description here

如您所见,笔划宽度在两个方向上延伸:边界矩形的外部和内部。我该如何去掉外面的部分?

html svg
2个回答
3
投票

在内部

<rect>
元素内绘制
<svg>
,其大小与
<rect>
相同。内部
<svg>
元素将剪辑
<rect>

如果需要,您也可以使用剪辑路径或剪辑来执行此操作,但内部

<svg>
方式更简单。


2
投票

我不相信笔画可能只出现在线条的一侧(如果这是错误的,请纠正我)。

这里有两种方法可以达到您想要的效果:

方法#1:

只需将边界矩形放在 SVG 中填充的内部矩形之前即可。由于 SVG 优先规则,填充的矩形将位于边界矩形的“上方”,如果将其展开到正确的大小,它将覆盖边界矩形笔划的内部部分。

方法#2:

stroke-width
设置为其当前值的一半,然后在所有方向上进一步绘制半个描边宽度的边界矩形。

© www.soinside.com 2019 - 2024. All rights reserved.