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



css image (2)

“robertc”的答案是svg - 这与d3.js路径代码所使用的类似。 我设法通过应用以下内容为d3.js路径创建动态def。

我设法通过将其定义为以下来实现它

chart.append("defs")
     .append('pattern')
     .attr('id', 'locked2')
     .attr('patternUnits', 'userSpaceOnUse')
     .attr('width', 4)
     .attr('height', 4)
     .append("image")
     .attr("xlink:href", "locked.png")
     .attr('width', 4)
     .attr('height', 4);

https://ffff65535.com

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

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


你可以通过将背景变为一种pattern

<defs>
  <pattern id="img1" patternUnits="userSpaceOnUse" width="100" height="100">
    <image xlink: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)" />

工作示例





background-image