1. ホーム
  2. css

[解決済み] CSSでのインラインSVG

2022-03-14 11:34:20

質問

CSSでインラインSVGの定義を使用することは可能ですか?

みたいな意味です。

.my-class {
  background-image: <svg>...</svg>;
}

解決方法は?

はい、可能です。これを試してみてください。

body { background-image: 
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'><linearGradient id='gradient'><stop offset='10%' stop-color='%23F00'/><stop offset='90%' stop-color='%23fcc'/> </linearGradient><rect fill='url(%23gradient)' x='0' y='0' width='100%' height='100%'/></svg>");
      }

(SVGコンテンツはurlエスケープされている必要があることに注意してください。 # に置き換えられます。 %23 .)

これはIE 9(SVGをサポートしている)で動作します。 . Data-URLはIEの古いバージョンでも(制限はありますが)動作しますが、SVGをネイティブにサポートしているわけではありません。