views:

47

answers:

1

Is it possible to set a backgound-image for a svg path element?

For instance, if I set the element's class to wall, the css style .wall {fill: red;} works, but .wall{background-image: url(wall.jpg)} does not, neither .wall {background-color: red;}.

+1  A: 

You can do it by making the background into a 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>

Adjust the width and height according to your image, then reference it from the path like this:

<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)" />

Working example

robertc
@robertc Thank you
jbochi