1. ホーム
  2. html

[解決済み] SVG path 要素を background-image で塗りつぶす

2022-04-15 02:54:15

質問

を設定することは可能でしょうか? background-image SVGの場合 <path> 要素?

例えば class="wall" は、CSS スタイル .wall {fill: red;} が効くが .wall{background-image: url(wall.jpg)} でなくとも .wall {background-color: red;} .

どのように解決するのか?

背景を 雛形 :

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

動作例