2021.08.26

HTML・CSS

svgをCSSのbackground-imageに指定

svgをCSSのbackground-imageに指定します。IE11への対応で書き方が変わりますが、今回はIE11にも対応させます。svgのコードは以下の通りです。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 51.86 90.91">
  <defs>
    <style>
      .cls-1{fill:#fff;}
    </style>
  </defs>
  <g id="レイヤー_2" data-name="レイヤー 2">
    <g id="レイヤー_1-2" data-name="レイヤー 1">
      <path class="cls-1" d="M1.74,10.23c13.3,13.3,26.1,26.7,40.1,40v-8.5c-13,13-26,25.9-39,38.9-5.5,5.5,2.9,14,8.4,8.5l38.9-38.9a6.1,6.1,0,0,0,0-8.5q-19.95-19.95-39.9-40c-5.5-5.4-13.9,3.1-8.5,8.5Z"/>
    </g>
  </g>
</svg>

svgのコードから不要な部分を削除します。またstyleタグによる記述部分はpathデータにインラインで記述します。今回の場合、グループ化用のgタグは不要です。またclassで色設定している部分をpathデータのfill属性に変更します。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 51.86 90.91">
  <path fill="#ffffff" d="M1.74,10.23c13.3,13.3,26.1,26.7,40.1,40v-8.5c-13,13-26,25.9-39,38.9-5.5,5.5,2.9,14,8.4,8.5l38.9-38.9a6.1,6.1,0,0,0,0-8.5q-19.95-19.95-39.9-40c-5.5-5.4-13.9,3.1-8.5,8.5Z"/>
</svg>

最後にIE11でも表示できるように、svgのコードをツールを使ってbase64形式にエンコードします。

%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2051.86%2090.91%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M50.12%2C10.23c5.4-5.4-3-13.9-8.5-8.5q-19.93%2C20.1-39.9%2C40a6.12%2C6.12%2C0%2C0%2C0%2C0%2C8.5l38.9%2C38.9c5.5%2C5.5%2C13.9-3%2C8.4-8.5-13-13-26-25.9-39-38.9v8.5c14-13.3%2C26.81-26.7%2C40.1-40Z%22%2F%3E%3C%2Fsvg%3E

これをCSSのbackground-imageに指定します。〇〇〇の部分にbase64形式にエンコードしたsvgのコードを記述します。

background-image: url('data:image/svg+xml;charset=utf8,〇〇〇');

完成したコードは以下になります。

background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2051.86%2090.91%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M50.12%2C10.23c5.4-5.4-3-13.9-8.5-8.5q-19.93%2C20.1-39.9%2C40a6.12%2C6.12%2C0%2C0%2C0%2C0%2C8.5l38.9%2C38.9c5.5%2C5.5%2C13.9-3%2C8.4-8.5-13-13-26-25.9-39-38.9v8.5c14-13.3%2C26.81-26.7%2C40.1-40Z%22%2F%3E%3C%2Fsvg%3E');

関連記事

2024.08.17

HTML・CSS

transform複数指定時の順番について

transformプロパティで複数指定する場合は、指定の順番に注意が必要です。デモページはこちら 以下のhtml構造で確認します。 CSSでボタンの矢印を再現し…

2020.10.08

HTML・CSS

CSSのfilterプロパティの使用例

デモページはこちら CSSのfilterプロパティの使用例をまとめました。filterプロパティはIE11でサポート外ですが、種類が豊富で実装が簡単です。 ■ …

2020.08.19

HTML・CSS

iOS Safariのツールバーと表示エリアの挙動

iOS Safariで表示される画面下部のツールバーは、下にスクロールすると非表示になります。正確には上部のアドレスバーが小さくなり、下部のツールバーが消えます…

2023.02.18

HTML・CSS

異なる親要素を持つ子要素の重なり

異なる親要素を持つ子要素の重なりを、positionプロパティとz-indexプロパティを指定して確認します。デモページはこちら 以下のhtml構造で確認します…

2021.07.06

HTML・CSS

background-imageプロパティを利用した高さ可変の三角形

borderプロパティで三角形を作成した場合、高さを可変にすることができません。そこで、background-imageプロパティのlinear-gradien…

上に戻る