Selector adalah bagian paling penting dari CSS — ini adalah cara kita memilih elemen HTML mana yang ingin diberi gaya. Menguasai selector berarti menguasai fondasi seluruh CSS.
Memilih semua elemen HTML berdasarkan nama tag-nya:
p {
color: #374151;
font-size: 16px;
}
h1 {
color: #1d4ed8;
}
a {
color: #7c3aed;
}
Semua <p>, semua <h1>, dan semua <a> di seluruh halaman akan terkena gaya tersebut.
Memilih elemen berdasarkan atribut class. Diawali dengan tanda titik (.):
<p class="teks-merah">Paragraf pertama.</p>
<p>Paragraf biasa.</p>
<p class="teks-merah">Paragraf ketiga.</p>
.teks-merah {
color: red;
font-weight: bold;
}
Hanya paragraf dengan class="teks-merah" yang terpengaruh. Class bisa dipakai oleh banyak elemen sekaligus dan satu elemen bisa punya banyak class:
<p class="teks-besar teks-biru">Punya dua class sekaligus.</p>
.teks-besar { font-size: 24px; }
.teks-biru { color: blue; }
Memilih elemen berdasarkan atribut id. Diawali dengan tanda pagar (#). ID harus unik — hanya boleh ada satu elemen dengan ID yang sama per halaman:
<div id="header">Ini header utama.</div>
#header {
background-color: #1d4ed8;
color: white;
padding: 20px;
}
Memilih semua elemen di halaman. Ditulis dengan tanda bintang (*):
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
Paling umum digunakan sebagai CSS reset — menghapus gaya default browser sebelum menambahkan gaya sendiri.
Memilih elemen berdasarkan atribut atau nilai atributnya:
/* Semua input dengan type="text" */
input[type="text"] {
border: 1px solid #ccc;
padding: 8px;
}
/* Semua link yang href-nya mengandung "google" */
a[href*="google"] {
color: #4285f4;
}
/* Semua gambar yang src-nya diawali dengan "https" */
img[src^="https"] {
border: 2px solid green;
}
Memilih elemen berdasarkan kondisi atau state tertentu. Ditulis dengan tanda titik dua (:):
/* Saat link diarahkan mouse */
a:hover {
color: red;
text-decoration: underline;
}
/* Saat input sedang aktif/diklik */
input:focus {
outline: 2px solid #3b82f6;
}
/* Elemen li pertama dalam daftarnya */
li:first-child {
font-weight: bold;
}
/* Elemen li terakhir */
li:last-child {
border-bottom: none;
}
/* Elemen li ganjil (1, 3, 5, ...) */
li:nth-child(odd) {
background-color: #f3f4f6;
}
Menggabungkan selector untuk memilih elemen berdasarkan hubungannya:
/* Descendant: semua <p> di dalam <div> (di semua level) */
div p {
color: gray;
}
/* Child: hanya <p> langsung di bawah <div> */
div > p {
font-weight: bold;
}
/* Adjacent sibling: <p> yang langsung setelah <h1> */
h1 + p {
font-size: 18px;
}
/* General sibling: semua <p> yang sesudah <h1> (level sama) */
h1 ~ p {
color: #555;
}
Gunakan koma (,) untuk menerapkan gaya yang sama ke banyak selector sekaligus:
h1, h2, h3 {
font-family: 'Georgia', serif;
color: #111;
}
.tombol-primer, .tombol-sekunder {
padding: 10px 20px;
border-radius: 6px;
cursor: pointer;
}
Ketika dua selector menarget elemen yang sama, CSS memilih berdasarkan spesifisitas (kekhususan):
| Selector | Nilai Spesifisitas |
|---|---|
| Inline style | 1000 |
ID selector (#id) |
100 |
Class (.class), pseudo-class (:hover) |
10 |
Element (p, h1), pseudo-element |
1 |
Universal (*) |
0 |
p { color: gray; } /* spesifisitas: 1 */
.teks { color: blue; } /* spesifisitas: 10 — menang */
#unik { color: red; } /* spesifisitas: 100 — menang */
💡 Tips: Biasakan menggunakan class selector untuk sebagian besar styling. Hindari terlalu banyak menggunakan ID selector karena spesifisitasnya tinggi dan susah di-override. Universal selector gunakan hanya untuk CSS reset di awal file.
Kursus
CSS Dasar
Kategori
Dasar CSS
Durasi Pelajaran
20 menit