【发布时间】:2021-05-25 21:23:49
【问题描述】:
我有一个内联 SVG 对象,其中有一些行。我正在尝试将线的一半画成实线,另一半画成虚线。
<svg height="30" width="300">
<g fill="none" stroke="black" stroke-width="4">
<line stroke-dasharray="50%,1%,1%,1%" x1="10" x2="280" y1="10" y2="10" />
</g>
</svg>
【问题讨论】:
-
stroke-dasharray: 135? -
当您在
stroke-dasharray属性中使用%时,它将take a value relative to the current viewport: 与行/路径的长度无关。如果您希望线条填充 50%,则需要在 JS 中计算路径长度,然后将属性值设置为该值的一半。 -
没有多少人熟悉 pathLength 属性,但这是使用它的完美用例(下面是 Danny 的回答)——这避免了必须使用 JS 或使用两行代码