CSS3 object-fit 属性浅析示例

CSS3 object-fit 属性浅析示例

object-fit は、画像や動画などの置き換え要素が、その親要素の枠内でどのように表示されるか(サイズ調整やトリミング)を指定するCSSプロパティです。

CSS3のobject-fit属性の簡単な解説

object-fit は、置き換え要素(例えば <img>, <video>, <canvas>)のコンテンツがそのコンテナ内でどのようにフィットするかを指定するためのプロパティです。
要素の枠内での画像や動画の表示方法を制御します。

文法

object-fit: fill | contain | cover | none | scale-down;
  • fill(デフォルト):コンテンツがコンテナいっぱいに引き伸ばされ、変形する場合があります。
  • contain:コンテンツは縦横比を保ってコンテナ内に完全に収まりますが、余白ができることがあります。
  • cover:コンテンツは縦横比を保ってコンテナを覆い尽くしますが、一部が切り取られる可能性があります。
  • none:コンテンツは元のサイズのまま表示されます。拡大縮小されません。
  • scale-downnonecontain のうち、小さい方のサイズで表示されます。

サンプル

html

<div class="container">
  <img src="https://via.placeholder.com/300x200" alt="サンプル画像" />
</div>

CSS:

.container {
 width: 200px;
 height: 150px;
 border: 1px solid #ccc;
 overflow: hidden;
}

.container img {
 width: 100%;
 height: 100%;
 object-fit: cover; /* 他の値に変更して効果を試せます */
}

さまざまなobject-fitの値を試してみましょう

object-fit の値説明視覚的な効果の説明
fill引き伸ばしてコンテナに合わせる画像が変形する可能性があります
contain縦横比を保って完全に表示画像全体が表示され、余白ができることがあります
cover縦横比を保ってコンテナを覆う画像がはみ出して一部が切れることがあります
none元のサイズのまま表示画像は縮小・拡大されず、はみ出した部分は隠れます
scale-down元のサイズかcontainの小さい方画像が大きい時だけ縮小し、それ以外は元サイズ表示

注意点・補足

  • object-fit<img>, <video>, <canvas> など置き換え要素でのみ有効。
  • Internet Explorer は対応していないため、IE対応が必要な場合は別途対策が必要。
  • 要素の幅・高さを指定した状態で使用すると効果が分かりやすい。
  • 変形(歪み)を防ぎたい場合は fill は避け、contain または cover を使うのが良い。

Web制作現場でよくある質問(FAQ)

Q1: object-fitとbackground-sizeの違いは?

A1: object-fit<img> などの置き換え要素に使い、画像の表示方法を制御する。一方、background-size は背景画像に対して適用する。

Q2: IEでの対応方法は?

A2: IE非対応のため、JavaScriptでの代替処理や背景画像を使う方法が一般的。

IEに対応したcover効果の実装

.container img{		
	max-width: 1000%;
	max-height: 100%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	left: 50%;
	top: 50%;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	position: absolute;
}

Q3: object-fit: scale-down はどういう時に使う?

A3: 画像がコンテナより大きい時だけ縮小し、小さい時は元サイズのまま表示したい場合に便利。


まとめ(まとめ)

object-fit は画像や動画の表示制御に非常に便利なプロパティ。

contain は全体表示、cover はトリミングしてコンテナいっぱいに表示するのに適している。

ブラウザサポートを考慮して使い分けよう。

関連記事
固定ヘッダー対応!jQueryベースのアンカーリンク平滑スクロール+位置補正実装
固定ヘッダーで隠れない! ページ内リンクをクリックしてもスクロール先が見えない問題を、jQueryを使って滑らかに解決。スムーズスクロール+動的補正により、非同期コンテンツにも対応した実用的な実装コードを紹介します。
キウイフルーツ
キウイフルーツ
1ヶ月前
固定ヘッダー対応!jQueryベースのアンカーリンク平滑スクロール+位置補正実装
相対パスと絶対パスの使い方
相対パスは、モジュールやディレクトリ内のローカルな参照に適しており、柔軟性があります。一方、絶対パスはウェブサイト全体で共通のリソース(CSS、画像、CDNなど)を参照する際に便利です。両者を理解して使い分けることで、パスのエラーや読み込み不具合を防げます。
Details
Details
1ヶ月前
相対パスと絶対パスの使い方
画像の遅延読み込みはこう変わる!2025年最新版・Lazy LoadとIntersectionObserverの最適解
2025年最新の画像遅延読み込み(Lazy Load)完全ガイド。ネイティブloading="lazy"とIntersectionObserverの使い分け・実装例・SEOやLCPへの最新対応ポイントまで徹底解説。パフォーマンスと検索順位アップのための必読ノウハウ!
aki0o0
aki0o0
2ヶ月前
画像の遅延読み込みはこう変わる!2025年最新版・Lazy LoadとIntersectionObserverの最適解
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
日本語フォントはOSにより異なるため、複数のフォントを優先順に指定する。 "Yu Gothic"や"Yu Mincho"はモダンな日本語フォントでWindows 8.1以降に搭載。 "ヒラギノ角ゴ"や"ヒラギノ明朝"はmacOS向けで、高品質。 "メイリオ"や"MS 明朝"などは古いWindows環境にも対応。 ゴシック体はカジュアル・読みやすさ重視、明朝体はフォーマル・高級感重視に適している。
Details
Details
1ヶ月前
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
CSS3で複数行テキストを省略記号(…)で表示する方法【2行以上のellipsis対応】
CSS3の-webkit-line-clampを活用し、複数行テキストを自動で省略記号「…」で表示する方法を解説。2行以上の省略も簡単にコピペで実装できます!
Details
Details
1ヶ月前
CSS3で複数行テキストを省略記号(…)で表示する方法【2行以上のellipsis対応】
ズーム制限とレスポンシブデザイン|日本市場に最適化されたviewport設定とは?
モバイル向けサイトに必須のタグの正しい書き方と、日本市場向けの最適化方法を解説。ガラケー対応・フォント調整・アクセシビリティの注意点まで網羅。
キウイフルーツ
キウイフルーツ
1ヶ月前
ズーム制限とレスポンシブデザイン|日本市場に最適化されたviewport設定とは?
ページ遷移の一般的な方法
本記事では、Webページにおけるページ遷移(リダイレクト)の一般的な実装方法について紹介しています。JavaScript、HTMLのメタタグ、PHP、ASPを用いたリダイレクト方法をそれぞれ具体的なコード例と共に解説しています。
Details
Details
1ヶ月前
ページ遷移の一般的な方法
inputのプレースホルダー(placeholder)の色を変更する
プレースホルダーの色は::placeholder疑似要素で変更可能 IEやEdgeなどの古いブラウザ向けに:-ms-input-placeholder、::-ms-input-placeholderを併用 Firefoxでは透明度の調整のためopacity指定が推奨される
Details
Details
1ヶ月前
inputのプレースホルダー(placeholder)の色を変更する
SEOは聞いたことありますよね?ではGEOってご存知ですか?|生成エンジン最適化(GEO)の重要性や必要なことをまとめました!
SEOは知ってるけどGEOは初耳?AI時代に欠かせない「生成エンジン最適化(GEO)」の意味・必要性・対策ポイントを初心者向けにやさしく解説!
WASABI
WASABI
17日前
SEOは聞いたことありますよね?ではGEOってご存知ですか?|生成エンジン最適化(GEO)の重要性や必要なことをまとめました!