この記事はこんな方におすすめ
- object-fit の基本の使い方が知りたい
- object-fit で画像の画像をトリミングしたい
今回はCSSの「object-fit」についてどのような時に使うのか、その使い方や応用の仕方について解説します。
【PR】: フリーランス向け求人・案件を探すならこの3サイトがおすすめ!
※上記は当サイトからの登録が多い順になっています
※上記以外のエージェントを知りたい方は「IT業界エージェント・転職サイトのおすすめ」をご覧ください。
目次
object-fitの基本
「object-fit」プロパティは、<img>タグや<video>タグなどの中身を、どのようにはめ込むかの設定をすることができます。
この「object-fit」プロパティでは以下の値が使用できます。
- object-fit: fill;
- object-fit: contain;
- object-fit: cover;
- object-fit: none;
- object-fit: scale-down;
object-fit: fill; とは
「fill」を設定すると要素のボックス全体を埋めるサイズになります。
オブジェクト全体が完全にボックスの中を埋めるので、オブジェクトとボックスのアスペクト比が合わない場合は、オブジェクトが合うように引き伸ばされます。
object-fit: contain; とは
「contain」を設定するとアスペクト比を維持したまま、要素のボックスに収まるように拡大縮小されます。
オブジェクト全体がアスペクト比を維持したままボックス内に表示されて、オブジェクトとボックスのアスペクト比が合わない場合はレターボックス表示されます。
object-fit: cover; とは
「cover」を設定することでアスペクト比を維持したまま、要素のボックス全体を埋めるように拡大縮小されます。
オブジェクトのアスペクト比がボックスのアスペクト比と合わない場合、オブジェクトがボックスに合うように切り取られます。
object-fit: none; とは
「none」を設定すると、オブジェクトは拡大も縮小もされません。
object-fit: scale-down; とは
「scale-down」を設定した場合、コンテンツは「none」又は「contain」を指定したかのようにサイズが決められ、オブジェクトの実際のサイズが小さいほうを採用します。
画像を中央の位置でトリミングする方法
<img>要素に「object-fit: cover;」を指定するだけで、簡単に画像を中央の位置でトリミングすることができます。
See the Pen css object-fit-1 by TAKUYA FUNABIKI (@takuya20180216) on CodePen.
画像を任意の位置でトリミングする方法
上記の方法では画像の基点を中央にしか設定できませんでしたが、それ以外の任意の位置を基点にすることも可能です。
方法としては、object-fitはcoverのままで「object-position」を設定します。
See the Pen css object-fit 2 by TAKUYA FUNABIKI (@takuya20180216) on CodePen.
トリミングせずに余白を表示する方法
「object-fit」では画像をトリミングせずに余白を表示する方法もあります。
先ほどは「object-fit: cover;」を使いましたが、余白を表示するには「object-fit: contain;」に変えるだけで実装可能です。
See the Pen css object-fit 3 by TAKUYA FUNABIKI (@takuya20180216) on CodePen.
【注意】Internet Explorerには非対応
画像のトリミングをするのに簡単に利用できる「object-fit」ですが、残念ながらIE(Internet Explorer)には対応していません。
「object-fit」をIEに対応させる2つの方法
「object-fit」をIEに対応させる方法は以下の2つの方法があります。
方法①「object-fit-images」を使う方法
まずはGitHubで公開されている「object-fit-images」をダウンロードしましょう。
IE対応のためにダウンロードするのは面倒という方はCDNでも対応可能ですので、ダウンロードせずに次の手順へ進んでください。
/* srcのURL指定はソースの保存先を指定してください。 */ <scrpt src="js/ofi.min.js"></script>
/* CDNの読み込み */ <script src="https://cdnjs.cloudflare.com/ajax/libs/object-fit-images/3.2.4/ofi.js"></script>
では読みんだスクリプトを実行します。
/* スクリプトの実行 */ <script> objectFitImages(); </script>
object-fit: cover; /*IE対策用CSS*/ font-family: 'object-fit: cover;';
これで「object-fit」をIE対応させることができます。
では次にさらに簡単な方法をご紹介します。
方法②「fitie.js」を使う方法
/* object-fitのIE対応用JS読み込み */ <script src="fitie.js"></script>
たったのこれだけで対応完了です。
関連記事
【コピペOK!】ブロックの中のブロック要素を上下左右中央に揃える方法【HTML/CSS】
FUNAこんにちは、リバティエンジニアのFUNA(フナ)です。現役でフリーランスのエンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 この記事はこんな方におすすめ ブロ ...
【CSS】たった1行のコピペで簡単!object fitで画像をトリミングする方法
CSSで画像をトリミングしたい時にたったの1行で実装できる方法を解説します。「object-fit」についてどのような時に使うのか、その使い方や応用の仕方を覚えてみてください。
【コピペOK】CSSでcounterを利用して自動ナンバリングする方法
今回はCSSの「counter」をコピペでも簡単に実装できる方法・ソースコードをご紹介します。このcounterを利用することで、CSSだけで自動でナンバリングを実装することができます。意外と知られていないのですが、「1 2 3 4」の基本のものや「第1章 第2章 第3章 第4章」と書き出しをつけたりすることができて、幅広く応用できます。
【コピペOK】CSSだけで背景を斜めに区切る方法【レスポンシブ対応】
今回は、HTML/CSSで背景を斜めに区切ってデザインする方法を、コピペでも簡単に実装する方法を解説します。ランディングページやコーポレートサイトなどの作成時に背景を斜めに区切ってレイアウトされているサイトを良く見かけますが、実装の仕方は簡単なので、ぜひ覚えておきましょう。
【コピペでOK】HTMLで直接ファイルをダウンロードできるように設定する方法
今回は、HTMLでファイルのダウンロードを設定する方法について解説します。方法としては、aタグにdownload属性を入れるだけで、ファイルをダウンロードするリンクを作成することができます。ここでは、具体的な書き方と動作を確認していこうと思います。