使用SVG的部分边框/笔划

Ori*_*Wei 2 html javascript svg stroke d3.js

我正在使用svg/d3来创建由'rect'元素组成的图表.

为每个矩形添加一个圆形边框/笔划的最佳方法是什么(仅在矩形的顶部)?

谢谢

nra*_*itz 7

我不认为SVG支持只调整矩形或路径的部分 - 笔划不像CSS边框.你剩下一些其他的选择,所有这些都需要额外的工作:

  • 描绘整个rect并应用一个clipPath来移除其他三个边缘 - 如果你使矩形大于必要,可能效果最好.

  • 对每个rect 应用线性渐变填充,使用渐变定义在形状顶部显示"边框".

  • 添加一个单独的line元素作为每个元素的边框rect.

  • 使用stroke-dasharray属性(docs)设置破折号定义,其中"破折号"仅覆盖顶部rect.这可能很难做到,但我怀疑它不会太难,因为中风可能从形状的左上角开始.