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');

関連記事

2023.02.22

HTML・CSS

縦積みinline-flexの折り返しとwriting-modeによる代用

inline-flexで縦積みにした場合の折り返しと、writing-modeで縦積みにした場合の折り返しを確認します。デモページはこちら htmlは以下の単純…

2021.10.04

HTML・CSS

複数行のテキストの左側を縦のボーダーで装飾

デモページはこちら 複数行のテキストの左側を縦のボーダーで装飾します。CSSはborder-leftの場合とheightを設定した疑似要素beforeをabso…

2024.09.22

HTML・CSS

linear-gradientで作る格子模様と市松模様

background-imageプロパティのlinear-gradientで、1pxの線のみの格子模様と塗りと塗り無しの市松模様を作成します。デモページはこちら…

2022.08.28

HTML・CSS

親要素にtransformが設定されている場合のposition: fixed;

通常、position: fixed;でtop: 0;left: 0;の場合、画面の左上が基準位置になります。しかし、親要素(先祖を含む)にtransformが…

2020.07.05

HTML・CSS

rubyタグでテキストにルビ(ふりがな)を振る

rubyタグとrtタグの二つを使ってテキストにルビ(ふりがな)を振ります。rtタグはふりがな、rubyタグはテキストとふりがな(rtタグを含む)の両方を囲います…

上に戻る