Prinsip Kerja CSS
Memahami aturan main bagaimana browser menentukan gaya mana yang akan dimenangkan saat terjadi bentrokan kode.
Author : Celvine
Last Update : 06 March 2026
Pernah tidak kamu menulis kode CSS, tapi tampilannya tidak berubah sama sekali? Padahal selector-nya sudah benar. Jangan emosi dulu! Kemungkinan besar itu terjadi karena kamu belum paham Prinsip Kerja dari CSS.
Di materi ini, kita akan belajar tentang "hukum rimba" di dalam CSS:
siapa yang paling kuat, dialah yang akan tampil di browser
1. Penjelasan Konsep
Ada empat fondasi utama yang mengatur bagaimana CSS diterapkan:
- Cascade (Air Terjun): Jika ada dua aturan yang kekuatannya sama, maka aturan yang ditulis paling terakhir (paling bawah) yang akan menang.
- Specificity (Spesifikasi): Ini adalah sistem poin. Selector yang lebih spesifik akan menang melawan selector yang umum.
- ID (
#) punya poin paling tinggi. - Class (
.) punya poin menengah. - Elemen (tag) punya poin paling rendah.
- ID (
- Inheritance (Pewarisan): Beberapa properti (seperti warna teks dan font) akan otomatis diturunkan dari elemen induk (parent) ke elemen anak (child).
- !important: Ini adalah "kartu as". Jika ditambahkan pada sebuah properti, ia akan mengabaikan semua aturan Cascade dan Specificity.
2. Contoh Kode
Mari kita lihat sebuah contoh antar selector untuk mewarnai teks yang sama.
<h1 id="judul-blog" class="header-teks">
Selamat Datang di Blog Saya
</h1>Skor hanya contoh, agar bisa di pahami
/* Aturan 1: Element Selector (Skor: 1) */
h1 {
color: red;
}
/* Aturan 2: Class Selector (Skor: 10) */
.header-teks {
color: blue;
}
/* Aturan 3: ID Selector (Skor: 100) */
#judul-blog {
color: green;
}
/* Aturan 4: Cascade (Urutan Penulisan) */
h1 {
color: orange; /* Ini mengalahkan 'red' di atas, tapi kalah dari ID & Class */
}
/* Aturan 5: Inheritance */
body {
font-family: Arial; /* H1 akan mewarisi font ini */
}3. Penjelasan Kode
- Siapa pemenangnya? Teks akan berwarna Hijau.
- Kenapa? Meskipun ada aturan untuk
h1dan.header-teks, selector#judul-blog(ID) memiliki skor spesifisitas paling tinggi (100). - Bagaimana dengan warna Orange? Warna orange sempat mengalahkan warna merah (karena ditulis belakangan/Cascade), tapi tetap tidak bisa mengalahkan Class (skor 10) apalagi ID (skor 100).
- Inheritance: Perhatikan bahwa kita tidak mengatur
font-familydih1. Namun, karena kita mengaturnya dibody, makah1otomatis ikut menggunakan font Arial.
Sekarang coba ubah file style.css kamu dengan menambahkan !important
/* Aturan 1: Element Selector (Skor: 1) */
h1 {
color: red !important;
}
/* Aturan 2: Class Selector (Skor: 10) */
.header-teks {
color: blue;
}
/* Aturan 3: ID Selector (Skor: 100) */
#judul-blog {
color: green;
}
/* Aturan 4: Cascade (Urutan Penulisan) */
h1 {
color: orange; /* Ini mengalahkan 'red' di atas, tapi kalah dari ID & Class */
}
/* Aturan 5: Inheritance */
body {
font-family: Arial; /* H1 akan mewarisi font ini */
}Sekarang text Selamat Datang di Blog Saya berwarna apa ?
4. Best Practice
Penting agar kodinganmu tidak menjadi berantakan:
- Hindari Penggunaan
!important: Gunakan ini hanya sebagai jalan terakhir (emergency). Jika kamu terlalu sering memakai!important, CSS-mu akan sangat sulit diubah nantinya karena semua aturan "dipaksa" menang. - Jaga Spesifisitas Tetap Rendah: Sebaiknya gunakan
classuntuk hampir semua hal. Jika kamu terlalu banyak menggunakanIDuntuk styling, kamu akan kesulitan menimpa gaya tersebut jika dibutuhkan di bagian lain. - Pahami Urutan: Biasakan menulis CSS secara teratur. Misalnya: Reset global di atas, lalu komponen umum, baru kemudian komponen spesifik di bawah.