概要

object-fitは、CSSのプロパティで、画像や動画などのコンテンツが指定された領域内でどのように表示されるかを制御するために使用されます。このプロパティを活用することで、コンテンツが歪まずに表示されるように調整でき、レスポンシブデザインをより美しく仕上げることが可能です。ギャラリーの画像やヒーローヘッダーの動画など、さまざまなシーンで活用される重要なスタイリングツールです。

object-fitの基本

構文

.element {
object-fit: <値>;
}

主な値

  1. fill(デフォルト) 画像が要素のサイズに合わせて引き伸ばされますが、縦横比は保持されません。
  2. contain 画像が要素内に収まるように縮小され、縦横比が保持されます。空白部分が残る場合があります。
  3. cover 画像が要素全体を覆うように拡大・縮小され、縦横比は保持されます。領域からはみ出る部分がありますが、要素全体がカバーされます。
  4. none 画像は元のサイズで表示され、サイズ調整は行われません。画像が要素のサイズを超える場合ははみ出します。
  5. scale-down noneまたはcontainのどちらか小さい方で表示します。要素に対して最適なサイズで表示されます。

各値の詳細と使用例

fillで要素サイズに合わせる

fillは、要素のサイズに合わせて画像や動画を引き伸ばすため、コンテンツが歪むことがあります。この方法は要素全体を埋めたい場合に使用されますが、縦横比の保持はされません。

.fill-example {
width: 300px;
height: 200px;
object-fit: fill; /* 要素サイズに合わせる */
}
<img class="fill-example" src="example.jpg" alt="Fill Example">

この設定では、画像は300px × 200pxのサイズに引き伸ばされ、歪んで表示される可能性があります。

containで縦横比を保ちながらフィットさせる

containは、画像や動画を要素内に収まるように調整し、縦横比を保持します。要素の枠内に収まりますが、空白部分が発生することがあります。

.contain-example {
width: 300px;
height: 200px;
object-fit: contain; /* 要素内に収める */
background-color: #f0f0f0; /* 空白部分の背景色 */
}
<img class="contain-example" src="example.jpg" alt="Contain Example">

この設定では、画像は歪まずに表示され、空白部分が残りますが、画像全体が収まります。

coverで要素を覆うように表示する

coverは、画像が要素全体を覆うように拡大・縮小されます。縦横比は保持されますが、はみ出る部分もあるため、トリミングされることがあります。

.cover-example {
width: 300px;
height: 200px;
object-fit: cover; /* 要素全体をカバー */
}
<img class="cover-example" src="example.jpg" alt="Cover Example">

この設定では、画像が要素のサイズにフィットするように拡大され、不要な部分がトリミングされます。

noneで元のサイズを保持

noneは、画像や動画が元のサイズで表示されます。要素のサイズに収まらない場合ははみ出しますが、サイズ調整は行われません。

.none-example {
width: 300px;
height: 200px;
object-fit: none; /* 元のサイズを保持 */
}
<img class="none-example" src="example.jpg" alt="None Example">

この設定では、画像が要素より大きい場合ははみ出して表示されます。

scale-downで最適なサイズに調整

scale-downは、nonecontainのどちらか小さい方で表示されます。要素の枠内で最も適切なサイズに調整されます。

.scale-down-example {
width: 300px;
height: 200px;
object-fit: scale-down; /* 最適なサイズで表示 */
}
<img class="scale-down-example" src="example.jpg" alt="Scale Down Example">

この設定では、画像が元のサイズを保ちながら、必要に応じて縮小されて表示されます。

使用シーンと注意点

  • レスポンシブデザイン
    object-fitを使うことで、画面サイズに応じて画像や動画の表示方法を調整でき、視覚的なバランスを保てます。
  • ギャラリーやスライダー: 画像や動画が異なるアスペクト比を持つ場合でも、レイアウトが崩れることなく美しい表示が可能です。
  • ヒーローセクション: 大きな背景画像を用いたヒーローヘッダーにcoverを適用すると、スクリーン全体に広がる印象的なデザインが作れます。

注意点

  • 画像の品質
    coverfillを使用すると、画像が引き伸ばされてピクセル化する可能性があるため、解像度に注意が必要です。
  • はみ出しやトリミング
    coverは要素全体をカバーするため、重要な部分がカットされないように、画像の中心を意識して配置すると良いでしょう。

まとめ

object-fitプロパティは、CSSを使って画像や動画の表示を柔軟にコントロールするための便利なツールです。containcoverなどの値を使い分けることで、コンテンツが見栄え良く配置され、レスポンシブデザインでも美しいレイアウトが実現できます。各設定の特性を理解し、適切なフィット方法を選ぶことで、洗練されたWebデザインを作成してみましょう。