B.4.2.4. Backgrounds
Pada chapter ini kita akan membahas semua yang berkaitan dengan background di CSS seperti background-color, background dan background-image. Karena pembahasannya akan panjang, temen-temen boleh siapkan cemilan dan jangan lupa sedia air putih juga yaπ.
B.4.2.4.1. background-colorβ
background-color adalah properti yang digunakan untuk menetapkan warna latar belakang pada suatu elemen. Temen-temen bisa menggunakan nama warna, kode heksadesimal, HSL, HSLA, RGB, atau RGBA untuk menentukan warnanya.
Siktaks dari properti ini cukup sederhana:
selector {
background-color: value;
}
Nah untuk menggunakan properti ini juga cukup mudah, coba temen-temen perhatikan kode berikut:
- index.html
- style.css
<div class="hex"></div>
<div class="rgba"></div>
div {
width: 200px;
height: 200px;
border-radius: 0.75rem;
}
.hex {
background-color: #5ace79;
}
.rgba {
background-color: rgba(90, 206, 121, 0.5);
}
Kita punya dua buah tag <div> yang masing-masing memiliki class yang berbeda. Setelahnya kita terapan style untuk div secara general dan kita beri warna dengan nilai yang berbeda untuk masing-masing div menggunakan class-selector.
bisa temen-temen lihat hasilnya akan terlihat seperti gambar di bawah ini:

Untuk <div> yang kedua kita berikan nilainya berupa RGBA, lalu kita set alpha nya menjadi 0.5. Nilai alpha merepresentasikan tingkat transparansi pada warna yang di terapkan.
B.4.2.4.2. background-imageβ
Propertibackground-image digunakan untuk menetapkan gambar sebagai latar belakang elemen. Gambar bisa berasal dari path lokal atau URL.
Sintaks nya pun cukup sederhana:
selector {
background-image: url("/path/to/image.png");
}
Untuk cara penggunaannya, teme-temen bisa perhatikan kode berikut:
- index.html
- style.css
<div class="card-image"></div>
.card-image {
width: 400px;
height: 250px;
background-image: url("./sakura.jpg");
border-radius: 1.5rem;
}
Jika temen-temen buka di web browser maka hasilnya akan terlihat seperti:

Bisa terlihat sekarang tag <div> memiliki sebuah background yang di ambil dari sebuah gambar. Namun, hasilnya terlihat seperti gepeng ya?π€ temen-temen bisa tambahkan properti background-size:cover; agar gambarnya berukuran penuh memenuhi ukuran dari parent element-nya.
.card-image {
width: 400px;
height: 250px;
background-image: url("./sakura.jpg");
background-size: cover;
border-radius: 1.5rem;
}
Jika di lihat kembali di web browser maka sekarang tampilan yang di hasilkan akan terlihat lebih pas dan rapih.

Selain properti background-size ada juga properti lain yang bisa temen-temen gunakan, mari kita coba bahas satu per-satu.
B.4.2.4.2.1. background-positionβ
Properti ini menentukan posisi gambar latar belakang di dalam elemen. Temen-temen bisa menggunakan kata kunci seperti center, top, bottom, left, dan right untuk menentukan posisinya. Misalnya:
.card-image {
width: 400px;
height: 250px;
background-image: url("./sakura.jpg");
background-size: 200px;
border-radius: 1.5rem;
background-color: rgb(233, 206, 206);
background-position: center;
background-repeat: no-repeat;
}
Jika kita buka di web browser maka hasilnya akan terlihat seperti:

Kalau temen-temen tidak menentukan posisi, gambar akan ditempatkan di sudut kiri atas secara default.

B.4.2.4.2.2. background-repeatβ
Secara bawaan, jika temen-temen menggunakan sebuah gambar maka properti background-repeat akan otomatis bernilai repeat. Ini berarti, ketika ukuran gambar lebih kecil di banding ukuran container-_nya maka gambar akan di tampilkan secara ulang sebanyak hingga memenuhi lebar keseluruhan _container. Sebagai contoh coba perhatikan kode di bawah:
.card-image {
width: 400px;
height: 250px;
background-image: url("./sakura.jpg");
background-size: 200px;
border-radius: 1.5rem;
background-color: rgb(233, 206, 206);
}
Untuk mensimulasikannya, kita akan set lebar gambarnya ke 200px yaitu setengah dari lebar element aslinya yang di set sebesar 400px. Ketika temen-temen buka di web browser maka hasilnya akan terlihat seperti:

Properti background-repeat akan mengatur apakah gambar latar belakang diulang atau tidak. Ada beberapa opsi:
repeat: Gambar akan diulang baik secara horizontal maupun vertikal.no-repeat: Gambar tidak akan diulang.repeat-x: Gambar hanya akan diulang secara horizontal.repeat-y: Gambar hanya akan diulang secara vertikal.
Contohnya:
background-repeat: no-repeat;
Maka hasilnya akan terlihat seperti:

B.4.2.4.2.3. background-attachmentβ
Ini menentukan bagaimana gambar latar belakang bergerak saat halaman di-scroll:
scroll: Gambar akan bergerak bersama dengan halaman saat di-scroll (default).fixed: Gambar tetap di tempat saat halaman di-scroll.local: Gambar akan bergerak bersama dengan elemen saat di-scroll.
Misalnya:
- index.html
- style.css
<body>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit.</p>
<!--- .......More 200 line codes --->
</body>
body {
background-image: url("./sakura.jpg");
background-size: 200px;
background-repeat: no-repeat;
background-attachment: scroll;
}
Silahkan temen-temen coba buat tag <p> sebanyak mungkin sampai hasilnya bisa di scroll ya. Setelahnya, temen-temen bisa terapkan 3 nilai di atas lalu lihat perbedannya di web browser masing-masing.
B.4.2.4.2.4. background-clipβ
Ini menentukan area mana yang akan digunakan untuk menampilkan latar belakang. Sebagai contoh, coba temen-temen perhatikan kode berikut:
- index.html
- style.css
<div class="box-1"></div>
<div class="box-2"></div>
<div class="box-3"></div>
div {
width: 300px;
height: 150px;
background-color: rgb(151, 232, 151);
border: 10px dotted black;
margin-top: 1rem;
padding: 1rem;
}
.box-1 {
background-clip: border-box;
}
.box-2 {
background-clip: padding-box;
}
.box-3 {
background-clip: content-box;
}
-
border-box: Latar belakang akan berada di dalam border box, termasuk border dan padding.
-
padding-box: Latar belakang akan berada di dalam padding box, tidak termasuk border.
-
content-box: Latar belakang akan berada di dalam content box, tidak termasuk padding dan border.
Bisa temen-temen lihat perbedaan dari ketika nilai properti di atas. Untuk lebih jelasnya, silahkan temen-temen coba sendiri ya.
B.4.2.4.2.5. background-blend-modeβ
Properti ini digunakan untuk mengatur cara pencampuran warna latar belakang dan gambar latar belakang. Ada beberapa mode blend seperti normal(default), multiply, screen, overlay, hard-light, difference,dll. Misalnya:
- index.html
- style.css
<div class="card-image"></div>
.card-image {
width: 400px;
height: 250px;
background-image: url("./sakura.jpg");
background-size: cover;
border-radius: 1.5rem;
background-color: rebeccapurple;
}

Sekarang, coba kita ganti nilai untuk properti background-blend-mode:multiply; maka hasilnya akan terlihat seperti:

Silahkan temen-temen bisa langsung ber-eksperimen dengan mengganti nilai dari properti ini seperti yang telah di jabarkan di atas ya.
B.4.2.4.3. Shorthand Untuk backgroundβ
Jika untuk mengatur sebuah background baris kode yang di hasilkan menjadi lebih panjang, maka alternatif-nya temen-temen bisa gunakan shorthand yaitu background. Sintaks nya cukup sederhana, coba temen-temen perhatikan kode berikut:
background: <color> <image> <position> <size> <repeat> <attachment>;
Untuk penggunaannya, coba temen-temen perhatikan kode berikut:
- index.html
- style.css
<div class="card-image"></div>
.card-image {
width: 400px;
height: 250px;
border-radius: 1.5rem;
background: rebeccapurple url("./sakura.jpg") center/cover no-repeat fixed;
}
Maka hasilnya akan terlihat seperti:

Untuk penggunaan shorthand atau mendefinisikannya satu per-satu, silahkan di seuaikan dengan preferensi temen-temen masing-masing ya nyaman-nya pakai yang seperti apa.
Source ode pada chapter ini tersedia di GitHub
https://github.com/mframadann/webdev-dasar-example/tree/main/b-css/chapter-B.4-properti-css/B.4.2-box-styling/B.4.2.4-backgrounds
Mmm apakah halaman ini membantuπ€?
Ayo share tentang pengalaman belajarmu!