【CSS】ページの背景に透過画像を設定する方法

  • 2020年1月23日
  • CSS

簡単な CSS の書き方を見つけたので、未来の自分のために備忘録としてまとめ。
タイトル通り、ページの背景画像として透過した画像を設定する方法です。

今までは、<body> 要素に background-image プロパティで画像を設定した後、縦横が画面いっぱいの <div> 要素を作成し、それの背景色に半透明で白色もしくは黒色を指定するという方法を使っていました。
この方法でも問題はないのですが、もっと簡単な書き方をしたかったので調べたところ、下記の記事がとても役に立ちました!

Background-image(背景画像)を透過させるCSS|おがわ|note
https://note.com/jackinriver/n/n4383898ce0c6

 

早速ですが実装方法はこちら。

body {
  background-image: url("[指定したい背景画像]");
  background-repeat: no-repeat;
  background-size: cover;
  background-color:rgba(255,255,255,0.8);
  background-blend-mode:lighten;
}

今回は <body> 要素に対して透過した背景画像を指定しました。
なお、画像は繰り返し表示せず、背景サイズに応じて自動でトリミングするようにしています。
上記のサンプルコードでいうと 3~4行目にあたります。

で、ポイントは 5行目の background-color:rgba(255,255,255,0.8); と、6行目の background-blend-mode:lighten; です。
今までずっと background-imagebackground-color は両立できないというか、画像が優先的に上に重なるように表示されるものだと思い込んでいたのですが、background-blend-mode と一緒に使うといい感じに重なって、背景画像を透過することができるようです!

ちなみに、background-blend-mode とは「背景色と背景画像のブレンド方法を指定する」プロパティとのこと。
値によっては「絵具を混ぜたような結果」とか「スクリーン(光)を重ねたような結果」とか「明るい色はより明るく、暗い色はより暗くなる」…ということができるらしいのですが、正直違いが分からない!
なお、今回使用した background-blend-mode:lighten; は、ざっくりと説明すると「少し明るめにする効果」らしいです。
…かみ砕いて説明してもらったのに、やっぱりしっくりこないというか、いまいち理解できていないです。
使ったことがないプロパティなので、今後使うようになったら理解できるかな?
理解出来たら、また記事にしたいと思います。

とりあえず、「背景画像に透過画像を設定する」という今回の目標は達成できたので良しとします!

 

以上、CSS でページの背景に透過した画像を指定する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG