【html+css】imgタグで配置した画像をbackground-size:cover;と同じように表現する方法

html

imgタグで配置した画像をbackground-size:cover;と同じように扱いたいと感じることはよくあると思います。
とくに、レスポンシブコーディングが主流になってからは多いのではないでしょうか?

今回は、cssのみでそれを実現する方法です。

html

css

ベースになる.boxのheightは必須です。display: flex;などで横並びにする場合やtableタグ内であれば、高さを気にする必要はないです。むしろ横並びにする際にこの設定が必要になるケースが多いきがします。

imgの設定では、heigt、widhtともにミニマム値100%以上を確保することがポイントです。
transform: translate(-50%, -50%);でど真ん中に配置していますが、画像によってどこを基点にするかかえることもできます。

transformを使って中央配置する方法についてはこちらの記事も参考にしてみてください

【css】要素をposition:absoluteで中央に配置する最新の方法(上下左右、上下、左右)
positionを使って要素を配置する際、その要素を中央に配置したいといったことはよくあると思います。その場合どうすしたらいいのか悩まれた経験はありませんか?今回は、positionで、要素の幅が確定していなくても上下中央、左右中央、上下左