Menu

Background Image CSS: Size, Position, Repeat, Cover

background-image menaruh gambar atau gradien di belakang konten elemen. Pelajari url() dan gradien, background-size (cover dan contain), background-position, background-repeat, menumpuk beberapa background, dan shorthand background.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Cara menambahkan background image

background-image melukis gambar di belakang konten, padding, dan border elemen. Secara default, gambar dimulai dari pojok kiri atas padding box, memakai ukuran aslinya, dan diulang untuk mengisi kotak:

Di proyek sungguhan, url() menunjuk ke sebuah file: url("images/hero.jpg"). Path-nya relatif terhadap stylesheet yang memuatnya (atau terhadap halaman, untuk elemen <style>). Contoh-contoh di halaman ini memakai gambar SVG kecil yang ditulis langsung sebagai URL data: supaya bisa berjalan di mana saja.

Dua hal yang perlu kamu tahu sejak awal:

  • Background tidak memberi ukuran pada elemen. div kosong dengan background image tingginya 0px. Beri konten, padding, height, atau aspect-ratio.
  • Background image adalah dekorasi. Pembaca layar melewatinya dan tidak ada teks alt. Gambar yang punya makna sebaiknya ditaruh di elemen <img>.

background-size: cover, contain, dan panjang

background-size mengubah skala gambar. Dua kata kuncinya mempertahankan proporsi gambar:

Lebar gambar dua kali tingginya, dan setiap kotak berbentuk persegi.

NilaiHasil
auto (default)Ukuran asli gambar
coverDiperbesar sampai kotak terisi penuh; sisanya dipotong
containDiperbesar sampai seluruh gambar muat; tersisa pita abu-abu di dua sisi
200pxLebar 200px, tinggi menyesuaikan proporsi
50% autoSetengah lebar kotak, tinggi menyesuaikan proporsi
100% 100%Persis seukuran kotak; gambar jadi terdistorsi jika proporsinya berbeda

cover adalah pilihan biasa untuk banner hero dan kartu. contain untuk logo dan ilustrasi yang tidak boleh terpotong.

background-position dan background-repeat

background-position menempatkan gambar di dalam kotak, dengan kata kunci (top, center, bottom, left, right), persentase, atau panjang. background-repeat mengatur pengulangan. Coba beberapa nilai:

Coba posisi top right, bottom 10px right 20px, dan 25% 75%, serta nilai repeat repeat-x, repeat-y, space (gambar diulang dengan jarak sehingga tidak ada yang terpotong), dan round (ukuran gambar disesuaikan sehingga jumlahnya pas bulat).

background-image menerima daftar yang dipisahkan koma. Lapisan pertama digambar paling atas. Penggunaan yang umum adalah gradien semi transparan di atas foto, supaya teks putih tetap terbaca:

aspect-ratio memberi tinggi pada kotak kosong, dan background-size: cover berlaku untuk kedua lapisan. Untuk resep gradien lainnya, lihat gradien CSS.

Shorthand background

background mengatur semua properti background dalam satu baris. Ukuran harus ditulis tepat setelah posisi, dipisahkan garis miring, dan warna ditaruh di lapisan terakhir:

.hero {
  background: url("hero.jpg") center / cover no-repeat, #1f2937;
}
/* the same as */
.hero {
  background-image: url("hero.jpg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-color: #1f2937;
}

Warna cadangan terlihat selama gambar dimuat, dan juga jika gambar gagal dimuat. Properti apa pun yang tidak kamu tulis di shorthand diatur ulang ke nilai default-nya, jadi tulis shorthand lebih dulu dan properti satuan sesudahnya.

Properti background lainnya

PropertiFungsinya
background-attachment: fixedGambar tetap diam saat halaman di-scroll (diabaikan di Safari iOS)
background-originApakah posisi dihitung dari tepi border, padding, atau konten
background-clipDi mana background dilukis, termasuk text untuk mengisi huruf
background-blend-modeMencampur lapisan, misalnya dengan multiply

Kesalahan umum

  • Path yang salah. url() di stylesheet relatif terhadap file CSS, bukan terhadap halaman HTML.
  • Elemen kosong. Elemen itu tidak punya tinggi, jadi gambarnya tidak punya tempat untuk tampil.
  • Lupa no-repeat saat memakai contain atau gambar kecil: gambarnya akan diulang.
  • Meregangkan dengan 100% 100% padahal yang kamu maksud cover.
  • Gambar penting sebagai background. Pakai <img> dengan teks alt untuk konten; background tidak terlihat oleh pembaca layar.
  • Tidak memberi tanda kutip pada URL data: yang berisi spasi atau tanda kutip. Selalu tulis url("...").

Pertanyaan yang sering diajukan

Bagaimana cara menambahkan background image di CSS?

Pakai background-image: url("photo.jpg"); pada elemen. Path-nya relatif terhadap file CSS (atau terhadap halaman, untuk atribut style atau elemen <style>). Beri ukuran pada elemen, karena background tidak pernah membuat elemen kosong membesar.

Bagaimana cara membuat background image menutupi seluruh elemen?

Pakai background-size: cover; bersama background-position: center;. Gambar diperbesar sampai mengisi kotak sepenuhnya dengan proporsi yang tetap, dan bagian yang berlebih dipotong.

Apa perbedaan cover dan contain?

cover mengisi seluruh kotak dan memotong bagian yang tidak muat. contain menampilkan seluruh gambar dan menyisakan ruang kosong di dua sisi jika proporsinya berbeda.

Bagaimana cara agar background image tidak berulang?

Tambahkan background-repeat: no-repeat;. Secara default, background image diulang ke dua arah untuk mengisi elemen.

Kenapa background image saya tidak muncul?

Penyebab yang umum adalah path yang salah di url() (path-nya relatif terhadap file CSS), elemen tanpa tinggi karena tidak punya konten, atau shorthand background di bawahnya yang mengatur ulang gambar.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai