Answers:
如果您需要笔触或不笔触,则还可以使用笔触-dasharray来实现此目的,方法是使虚线和间隙与矩形的边相匹配。
rect { fill: none; stroke: black; }
.top { stroke-dasharray: 0,50,150 }
.left { stroke-dasharray: 150,50 }
.bottom { stroke-dasharray: 100,50 }
.right { stroke-dasharray: 50,50,100 }
<svg height="300">
<rect x="0.5" y="0.5" width="50" height="50" class="top"/>
<rect x="0.5" y="60.5" width="50" height="50" class="left"/>
<rect x="0.5" y="120.5" width="50" height="50" class="bottom"/>
<rect x="0.5" y="180.5" width="50" height="50" class="right"/>
</svg>
参见jsfiddle。
stroke-dasharray
给定对象的对象,该对象定义应显示哪些边框。阅读代码可能有助于您了解其工作原理:codepen.io/lazd/pen/WNweNwy?editors=1010
您无法在SVG中更改单个形状各个部分的视觉样式(缺少尚未提供的Vector Effects模块)。相反,您将需要为每个要更改的笔触或其他视觉样式创建单独的形状。
专门针对这种情况,您可以创建一个或而不覆盖一个<rect>
或<polygon>
元素,它仅覆盖矩形的三个边:<path>
<polyline>
<!-- Move to 50,50 then draw a line to 150,50, to 150,150, and then to 50,150 -->
<path d="M50,50 L150,50 150,150 50,150" />
<polyline points="50,50 150,50 150,150 50,150" />
您可以在这里查看这些效果的作用:http : //jsfiddle.net/b5FrF/3/
有关更多信息,请阅读有关<polyline>
更强大但更易混淆的<path>
形状。