Object Fit — CSS

Pernah upload foto profil di Instagram terus wajah kamu ke-crop aneh? Itu hasil object-fit yang gak diatur dengan tepat. Pas kamu kasih ukuran tetap ke (misal…

Kalau gambar diberi ukuran yang bentuknya beda dari foto aslinya, misalnya foto lebar dimasukkan ke kotak persegi, browser harus memilih: menggepengkan gambarnya, memotong pinggirnya, atau menyisakan ruang kosong. object-fit adalah properti buat <img> (dan <video>) yang menentukan pilihan itu.

🧪 Tebakan cepat: foto 800 × 400px diberi width: 200px dan height: 200px, tanpa object-fit. Apa yang terjadi dengan fotonya? Tebak dulu, jawabannya ada di bagian "fill, cover dan contain".

Gambar di dalam bingkai

<div class="frame">
  <img src="https://picsum.photos/800/400" alt="Foto">
</div>

<style>
.frame {
  width: 200px;
  height: 200px;
}
.frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
</style>

Hasilnya, foto persegi yang penuh dan proporsional, tapi pinggir kiri-kanannya hilang. Perhatikan: object-fit ditulis di aturan buat <img>, bukan di bingkainya.

fill, cover dan contain

Jawaban tebakan: fotonya gepeng. Tanpa object-fit, yang dipakai fill, jadi foto lebar ditekan sampai jadi persegi.

Pilih cover kalau kotaknya harus penuh, misalnya foto profil atau thumbnail. Pilih contain kalau gambarnya gak boleh terpotong sedikit pun, misalnya foto produk atau logo.

Bagian mana yang disimpan: object-position

.frame img {
  object-fit: cover;
  object-position: top;
}

Bawaannya, cover memotong sama rata dari tengah. object-position menggeser titik fokusnya, jadi kamu yang menentukan bagian mana yang dipertahankan. top menyimpan bagian atas, cocok buat foto orang supaya wajahnya gak kepotong. Nilai lainnya: bottom, left, right, center.

⚠️ Jebakan yang sering ketemu

TL;DR: object-fit menentukan cara <img> atau <video> mengisi kotak yang bentuknya beda dari gambarnya. fill (bawaan) menarik sampai gepeng, cover mengisi penuh dan memotong pinggirnya, contain menampilkan utuh dan menyisakan ruang kosong. Tulis di aturan gambarnya, bersama width dan height. object-position memilih bagian yang disimpan waktu cover memotong.

Yang akan kamu pelajari