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!