用背景图像填充SVG路径元素

是否可以为SVG <path>元素设置background-image ?

例如,如果我设置元素class="wall", CSS样式.wall {fill: red;}可以工作,但.wall{background-image: url(wall.jpg)}不行,.wall {background-color: red;}也不行。

259255 次浏览

你可以通过将后台设置为模式来实现:

<defs>
<pattern id="img1" patternUnits="userSpaceOnUse" width="100" height="100">
<image href="wall.jpg" x="0" y="0" width="100" height="100" />
</pattern>
</defs>

根据你的图像调整宽度和高度,然后从路径中引用它,像这样:

<path d="M5,50
l0,100 l100,0 l0,-100 l-100,0
M215,100
a50,50 0 1 1 -100,0 50,50 0 1 1 100,0
M265,50
l50,100 l-100,0 l50,-100
z"
fill="url(#img1)" />

工作示例