Webページの背景画像を透かしてオシャレにしてみる
Webページに背景画像を入れて、さらにちょっと透かして気取った感じにする方法です。
作成中のポートフォリオサイトです↓
背景画像を入れる
背景画像を入れるには、background-imageというプロパティを使います。
<div class="background-img"> </div>
.background-img { height: 100vh; background-image: url("画像の場所を指定"); }
これでひとまず画像が入りました。
下の画像は、ブラウザで表示したものをスクショしてます。
ただしこのままではサイズが全然合ってません。
サイズを合わせるのに使うのが、background-sizeプロパティです。
先ほどの記述に追加します。
.background-img { height: 100vh; background-image: url("画像の場所を指定"); background-size: cover; }
background-size: cover;
で、要素の横幅に合わせて画像を表示してくれます。
ただ横幅に合わせているので、わかりづらいですが実は画像の下の方が切れてるんですよね。横ではなく縦に合わせたい時は、coverではなくcontainにします。
.background-img { height: 100vh; background-image: url("画像の場所を指定"); background-size: contain; }
画像の全体が表示されました。
しかし足りない部分は同じ画像を繰り返し表示するので、右端の方が微妙な感じになってます。これを避けるにはbackground-repeatプロパティを使います。
.background-img { height: 100vh; background-image: url("画像の場所を指定"); background-size: contain; background-repeat: no-repeat; }
これで繰り返しを避けられました。
最後に、画像を無理やり要素のサイズに合わせるには、パーセンテージを指定します。
.background-img { height: 100vh; background-image: url("画像の場所を指定"); background-size: 100% 100%; }
画像が引き延ばされていますが、要素の大きさに合わせて表示されています。
透かしを入れる
では、画像を透かして気取った感じにする方法。これについては、もっと上手いやり方があるのかもしれないですが、私は今のところ白い要素を重ねることで作っています。
背景画像の上に同じ大きさの要素を重ねて、その要素に色を付ける、という感じです。
コードは以下のようになります。
<div class="background-img"> <div class="background-cover"> </div> </div>
.background-cover { height: 100%; background: rgba(255, 255, 255, 0.3); }
rgba()の4つ目の引数で色の透過率を設定しています。0に近いほどスケスケになり、1に近いほど透けなくなります。
0.8にするとこんな感じです。
だいぶ白っぽくなりましたね。
白じゃない色を重ねてみても面白そうです。
まとめ
- 背景画像の挿入にはbackground-image
- background-sizeで大きさを指定
- 同じ大きさの要素を重ねることでいい感じにアレンジできる