CSSだけで画像の比率を保ってトリミングできる「object-fit」

カード型のレイアウトを実装するときなどに「画像を特定のサイズにしたい!」と思うときがあります。
自分が画像を書き出して実装するのであれば、サイズを合わせて書き出すので普通に実装すれば実現できますが、クライアント側で運用をお願いする場合や、ユーザーが画像をアップロードして反映するものの場合は、画像サイズや比率を考えずにアップされてしまいます。
そんなとき「理想の画像サイズ・比率じゃないときに特定のサイズに切り抜く」をCSSで実現してくれるのがobject-fitプロパティです。
object-fitの使い方
今回は横幅180px高さ360pxの縦長の画像を、横幅360px高さ222pxにしたい場合を想定します。
See the Pen ZEbeVWQ by Masakazu Saito (@31mskz10) on CodePen.
まず、widthとheightを指定すれば、画像を固定の幅にできますが、その代わりに比率があっていない画像を使った場合は比率が崩れて表示されてしまいます。
比率が崩れないように切り取ってもらうためには、object-fit: cover;を指定します。
object-fit: cover;ちなみに、object-fit contain;を指定すると、画像全体を表示させるようになります。
object-fit contain;
ブラウザ対応状況
非常に便利なプロパティなのですが、IE11ではまだ対応していないのがネックです。
IE11でも使いたい場合はPolyfillを設定すれば使えるようになります。
IE11対応
Polyfillを使用するためには、GitHubからスクリプトをダウンロードするか、CDNのコードを追加するかします。
あとはPolyfillの読み込み後に下記のスクリプトを実行します。
<script>
objectFitImages();
</script>あとはfont-family: 'object-fit: cover;';というように、font-familyでobject-fitを指定してあげます。
object-fit: cover;
font-family: 'object-fit: cover;';これでIE11でも比率が崩れることなく表示されます。



Post Snippetsを使ってWordPressでショートコードをの登録と管理をもっと楽に!!
Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法
Vue CLIでVue.jsの開発環境をセットアップするまでの流れ
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
Visual Studio CodeでSVGをプレビューする拡張機能「SVG Preview」
SourceTreeを開くと「’git status’ failed with code 69:’」というポップアップが出てくる場合の解決方法
Visual Studio Codeで英単語のスペルチェックをしてくれる拡張機能「Code Spell Checker」
Visual Studio Codeで複数ファイルを編集するときにタブやペインの操作方法
Visual Studio CodeをMarkdownエディターとして使用する
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする