生成带有虚线填充线的 SVG 矩形

Generating an SVG rectangle with dashed fill lines

我有一个用 dimpleJS 制作的矩形,需要用虚线而不是纯色填充的框。这可以使用 svg,css and/or jquery 吗?矩形在下面。

<rect id="dimple-not-working-on-an-associate-s-degree-2008-not-working-on-an-associate-s-degree---" class="dimple-series-0 dimple-bar dimple-not-working-on-an-associate-s-degree dimple-2008 dimple-not-working-on-an-associate-s-degree dimple-custom-series-bar dimple-custom-format-1" x="183.5" y="128.4" width="18" height="141.6" opacity="0.8" style="fill: rgb(92, 186, 230); stroke: rgb(77, 156, 192);" fill="#5cbae6" stroke="rgb(77, 156, 192)"></rect>

正如罗伯特在评论中提到的,您需要做的是使用 pattern 来填充矩形。步骤很简单:

  • 在 SVG 中定义一个图案
  • 在模式里面,"draw" 任何你想要的模式。例如,你想要虚线,所以你会做一条只占据图案一部分的线,所以当它重复时它看起来像虚线。
  • 将属性 patternUnits 设置为 "userSpaceOnUse" 因此图案将占据应用它的整个元素(就像背景重复一样)。
  • 通过引用其 id(例如 fill="url(#pattern-id)")在 fill 属性中应用模式

在这里您可以看到一个正在运行的演示:

<svg width="100" height="100" viewBox="0 0 100 100">
  <defs>
    <pattern id="lines" height="10" width="10" patternUnits="userSpaceOnUse">
      <line x1="0" y1="4" x2="5" y2="4" stroke-width="2" stroke="black"/>
    </pattern>
  </defs>
  <rect x="10" y="10" width="80" height="80" fill="url(#lines)" />
</svg>