如何仅在 SVG 形状的某些边上设置描边宽度:1?
在 SVG 中的
元素上设置描边宽度:1 会在矩形的每条边上放置一个描边。
如何将笔划宽度仅放置在 SVG 矩形的三个边上?
Setting a stroke-width: 1 on a <rect>
element in SVG places a stroke on every side of the rectangle.
How does one place a stroke width on only three sides of an SVG rectangle?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您需要描边或无描边,那么您还可以使用描边-dasharray 为此,请使破折号和间隙与矩形的边相匹配。
请参阅 jsfiddle。
If you need stroke or no-stroke then you can also use stroke-dasharray to do this, by making the dashes and gaps match up with the sides of the rectangle.
See jsfiddle.
您无法更改 SVG 中单个形状各个部分的视觉样式(缺少尚不可用的 矢量效果模块)。相反,您需要为每个笔画或您想要改变的其他视觉样式创建单独的形状。
特别是对于这种情况,您可以创建仅覆盖矩形的三个边:
或
或
元素,而不是使用code>您可以在此处查看这些操作的效果:http://jsfiddle.net/b5FrF/3/
有关详细信息,请阅读
和更强大但更令人困惑的
形状。You cannot change the visual style of various parts of a single shape in SVG (absence the not-yet-available Vector Effects module). Instead, you will need to create separate shapes for each stroke or other visual style that you want to vary.
Specifically for this case, instead of using a
<rect>
or<polygon>
element you can create a<path>
or<polyline>
that only covers three sides of the rectangle:You can see the effect of these in action here: http://jsfiddle.net/b5FrF/3/
For more information, read about the
<polyline>
and more-powerful-but-more-confusing<path>
shapes.您可以对三个描边边使用折线,而根本不将描边放在矩形上。我认为 SVG 不允许您将不同的笔触应用于路径/形状的不同部分,因此您需要使用多个对象来获得相同的效果。
You could use a polyline for the three stroked sides, and just not put the stroke on the rectangle at all. I don't think SVG lets you apply different strokes to different parts of a path/shape, so you need to use multiple objects to get the same effect.