お問合せ
MENU

【CSS】object-fitでimg画像を要素いっぱいに配置する

コードのこと

【CSS】object-fitでimg画像を要素いっぱいに配置する

object-fitというCSSをご存じでしょうか?
画像を画面幅いっぱいに表示する時はbackground-imageのbackground-size-coverを使って画像を表示される方も多いと思いますが、object-fitを使えばimgタグでも同じような表示が可能になります。

実際に見ていきましょう!

今回使う画像は少し横長の猫ちゃんです🐈

猫の画像

親要素いっぱいに画像を広げる場合【object-fit:cover】

HTML

<div class="object-fit-img">
    <img src="./img/sample.webp" class="cover">
</div>

CSS

.object-fit-img{
    width: 300px;
    height: 300px;
    max-width:100%;
    border: 1px solid #ccc;
}
.cover{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

上記のHTMLとCSSで以下の形の猫ちゃんが表示されます!
親要素のdivが300×300の正方形なので画像が要素いっぱいに広がっています。

↓これがobject-fit:cover;です!※img画像につけます

object-fit:coverのサンプル画像

親要素の中に画像を収める場合【object-fit:contain】

HTML

<div class="object-fit-img">
    <img src="./img/sample.webp" class="contain">
</div>

CSS

.contain{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

上記のHTMLとCSSで以下の形の猫ちゃんが表示されます!
親要素のdiv(300×300)の正方形に画像がぴったり収まっています。

↓これがobject-fit:contain;です!※img画像につけます

object-fit:containのサンプル画像

写真の位置を真ん中寄せにする【object-position:center】

HTML

<div class="object-fit-img">
    <img src="./img/sample.webp" class="cover center">
</div>

CSS

.object-fit-img{
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
    max-width: 100%;
}
.cover{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.center{
    object-position: center;
}

↓object-position:centerで真ん中寄せ!

object-fit:cover & object-position:center;のサンプル画像

写真の位置を真ん中寄せにする【object-position:top 〇% left 〇%】

HTML

<div class="object-fit-img">
    <img src="./img/sample.webp" class="cover top50-left20">
</div>

CSS

.object-fit-img{
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
    max-width: 100%;
}
.cover{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.top50-left20{
    object-position: top 50% left 20%;
}

↓object-position:top 〇% left 〇%で自由に位置を調整できます!

object-fit:cover & object-position:top 30% left 20%;のサンプル画像

CSSのobject-fitの使い方まとめ

この記事のポイントをまとめます。

  • 親要素いっぱいに画像を広げる時はobject-fit:cover;。
  • 親要素内に画像を収めたい時はobject-fit:contain;。
  • object-positionで位置の調整が可能です。

↑のCSSを覚えておくと色々な場面で使えるので便利です!
ぜひ活用してみてくださいね。

ブログ一覧へ