こちらの記事では、背景画像background-imageの高さを可変(レスポンシブ)にする方法についてまとめています。
背景画像をレスポンシブ対応させる方法が分からず、今までbackground-imageを使わずにimgタグだけで画像を表示させていた方は、こちらの記事を参考にしてimgタグとbackground-imageプロパティで表示させる画像を適切に分けられるようにしましょう!
- HTMLとCSSの基本が体系的に学べる
- Webデザインの基本が学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
サンプル
<div class="back-img"></div>
.back-img{
width: 100%;
height: 0;
padding-top: 62.5%; // (画像の高さ / 画像の横幅) × 100
background: url(sample.png); //背景画像を設定
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
}
上記に表示されている画像はbackgroundプロパティを使用して背景画像としてレスポンシブ対応しています。ブラウザ幅を狭めると画像が同じ比率で縮小することを確認することができます。
背景画像をレスポンシブ対応させる重要なポイント
アスペクト比からpadding-topに数値を設定する
背景画像をレスポンシブ対応させる上で一番重要なポイントなのが、padding-topプロパティに設定する値です。
サンプルでは62.5%を設定していますが、この数値は背景画像として表示させる画像のアスペクト比によって算出される値が異なります。
表示させたい画像サイズを確認し下記の計算式に数値を当てはめることで、padding-topに設定する値を算出することができます。
(画像の高さ / 画像の横幅) × 100
背景画像以外にも動画などを配置する時に使えるテクニックなので覚えておきましょう!
まとめ
今回はbackground-imageで背景画像をレスポンシブ対応させる方法について解説しました。
重要なポイントを忘れないようおさらいを兼ねて下記にまとめました。
padding-topに設定する値は、(画像の高さ / 画像の横幅) × 100で算出することができる