是否可以为 SVG <path>
元素设置 background-image
?
例如,如果我设置元素 class="wall"
,CSS 样式 .wall {fill: red;}
有效,但 .wall{background-image: url(wall.jpg)}
无效,.wall {background-color: red;}
也无效。
您可以通过将背景设置为 pattern 来做到这一点:
<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)" />
data:image/png;base64,iVBORw0KGgoAA
之类的 wall.jpg?xlink:href
,现在只需使用href
。 developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href