Cara mengatur warna background
background-color mengisi kotak elemen dengan warna, termasuk padding-nya dan area di bawah border-nya. Properti ini menerima warna CSS apa pun.
Warna halaman diatur di body, kartu dan pemberitahuan di div masing-masing, dan sorotan di sebuah elemen inline. Elemen inline hanya mendapat background di belakang teksnya, baris demi baris.
Warna background seluruh halaman
Taruh background-color di body. Jika elemen <html> tidak punya background sendiri, browser mewarnai seluruh jendela dengan background milik body, bahkan di bagian setelah konten body berakhir:
body {
background-color: #111827;
color: #f9fafb; /* change the text color too, for contrast */
}
Cara lama di HTML adalah <body bgcolor="black">. Atribut bgcolor sudah usang di semua elemen, jadi pakailah CSS. Browser masih mengikutinya demi halaman lama, itulah sebabnya atribut ini kadang terlihat berfungsi.
Background transparan
Setiap elemen dimulai dengan background-color: transparent, jadi kamu melihat elemen induk di belakangnya. Untuk memberi warna tipis pada kotak tapi tetap tembus pandang, pakai warna dengan alpha channel:
opacity: 0.5 juga akan membuat garis-garis di belakang terlihat, tetapi ikut memudarkan teksnya. Untuk background tembus pandang dengan teks yang tetap pekat, pakai warna dengan alpha. Halaman warna berisi semua cara menuliskannya.
Di mana warna dilukis
Secara default, background mencapai tepi luar border (jadi warnanya terlihat di sela border putus-putus atau semi transparan). background-clip mengubah hal itu:
Di kotak pertama, warna kuning tua terlihat di antara garis putus-putus. Di kotak kedua, warnanya berhenti di tepi dalam border, dan di kotak ketiga hanya area konten yang diwarnai. Margin tidak pernah diwarnai: margin selalu transparan.
Baris tabel berselang-seling
Background pada setiap baris kedua membuat tabel yang lebar lebih mudah dibaca sekilas:
background-color vs shorthand background
background mengatur semua properti background sekaligus. Bagian yang tidak kamu tulis kembali ke nilai default-nya, dan ini sering menjebak:
.hero {
background-image: linear-gradient(#2563eb, #1e40af);
background: #111827; /* also resets background-image to none */
}
.hero {
background-image: linear-gradient(#2563eb, #1e40af);
background-color: #111827; /* only the color; the gradient stays */
}
Pakai background-color jika yang kamu maksud hanya warna. Pakai background jika kamu mengatur seluruh background di satu tempat, sering kali warna sekaligus gambar; lihat background-image.
Aksesibilitas: pasangkan dengan warna teks
Warna background hanya bisa dibaca jika dipasangkan dengan warna teksnya. Setiap kali kamu mengatur salah satunya, periksa yang lain: WCAG meminta rasio kontras minimal 4.5:1 untuk teks isi. Background gelap perlu warna teks terang yang diatur secara eksplisit, karena teks tetap memakai warna gelap yang diwarisinya.
Kesalahan umum
- Memakai
bgcolor. Atribut ini sudah usang. Pakaibackground-color. - Memakai
opacityuntuk background tembus pandang. Kontennya ikut memudar. Pakai warna dengan alpha. - Shorthand
backgroundsetelahbackground-image. Shorthand itu mengatur ulang gambarnya. Tulisbackground-colorsaja. - Berharap margin menampilkan warna. Margin berada di luar background. Pakai padding untuk ruang yang berwarna.
- Background gelap dengan teks default. Atur juga
coloryang terang.
Pertanyaan yang sering diajukan
Bagaimana cara mengubah warna background di HTML?
Pakai properti CSS background-color. Untuk seluruh halaman: body { background-color: #f3f4f6; }. Untuk satu elemen: <div style="background-color: #fef3c7;">.
Apakah bgcolor masih valid di HTML?
Tidak. Atribut bgcolor pada <body>, <table>, dan <td> sudah usang di HTML5. Browser masih menampilkannya demi halaman lama, tetapi cara yang benar adalah background-color di CSS.
Bagaimana cara membuat warna background transparan?
Pakai warna dengan alpha channel, misalnya background-color: rgb(37 99 235 / 20%);. Berbeda dengan opacity, cara ini membuat teks di dalamnya tetap terlihat penuh.
Apa perbedaan background dan background-color?
background-color hanya mengatur warna. background adalah shorthand untuk semua properti background (warna, gambar, posisi, ukuran, pengulangan, attachment, origin, dan clip), jadi background: red; juga mengatur ulang gambar background menjadi tidak ada.
Kenapa warna background body memenuhi seluruh jendela?
Jika elemen <html> tidak punya background sendiri, browser mewarnai seluruh kanvas dengan background milik body, bahkan di luar kotak body. Beri html background sendiri jika kamu ingin keduanya berbeda.