CSS Pseudo-classes Cheat Sheet 🔍
Eris Sulistina

Eris Sulistina @sejutaimpian

Joined:
May 14, 2024

CSS Pseudo-classes Cheat Sheet 🔍

Publish Date: May 26
1 0

CSS memiliki banyak pseudo-class yang memungkinkan kita menarget elemen berdasarkan status, struktur, dan interaksi. Berikut ini adalah ringkasan beberapa pseudo-class yang dikelompokkan berdasarkan kategori, lengkap dengan deskripsi singkat dan tingkat prioritas mempelajarinya.


👁️ Element display state pseudo-classes

Pseudo-class berikut digunakan untuk menarget elemen berdasarkan status tampilannya.

Pseudo-class Keterangan Prioritas
:fullscreen Menargetkan elemen saat berada dalam mode fullscreen ⭐⭐
:modal Menargetkan elemen yang sedang terbuka sebagai modal ⭐⭐⭐⭐
:picture-in-picture Menargetkan elemen
:open Menargetkan elemen seperti yang sedang terbuka ⭐⭐⭐
:popover-open Menargetkan elemen yang sedang terbuka sebagai popover ⭐⭐⭐⭐

⌨️ Input pseudo-classes

Digunakan untuk menarget elemen input berdasarkan status, validasi, dan interaksi pengguna.

Pseudo-class Keterangan Prioritas
:autofill Menargetkan field form yang diisi otomatis oleh browser
:enabled Menargetkan elemen input yang tidak dinonaktifkan ⭐⭐
:disabled Menargetkan elemen input yang dinonaktifkan ⭐⭐⭐
:read-only Menargetkan elemen input yang bersifat hanya-baca ⭐⭐
:placeholder-shown Menargetkan input yang sedang menampilkan placeholder ⭐⭐⭐
:default Menargetkan elemen input yang menjadi pilihan default
:checked Menargetkan input seperti checkbox/radio yang tercentang ⭐⭐⭐⭐⭐
:blank Menargetkan input kosong (belum diisi sama sekali)
:valid Menargetkan input yang lolos validasi HTML5 ⭐⭐
:user-valid Menargetkan input valid setelah ada interaksi user ⭐⭐⭐
:invalid Menargetkan input yang gagal validasi HTML5 ⭐⭐
:user-invalid Menargetkan input tidak valid setelah ada interaksi user ⭐⭐⭐
:in-range Menargetkan input dengan nilai di dalam rentang yang valid
:out-of-range Menargetkan input dengan nilai di luar rentang yang valid
:required Menargetkan input yang wajib diisi ⭐⭐⭐
:optional Menargetkan input yang tidak wajib diisi

🌍 Location Pseudo-classes

Digunakan untuk menarget link atau elemen berdasarkan URL dan fragment.

Pseudo-class Keterangan Prioritas
:any-link Menargetkan semua elemen dengan atribut href, baik yang dikunjungi maupun belum ⭐⭐⭐
:link Menargetkan link yang belum dikunjungi ⭐⭐⭐⭐⭐
:visited Menargetkan link yang sudah dikunjungi ⭐⭐⭐⭐⭐
:local-link Menargetkan link yang mengarah ke halaman yang sama (internal link)
:target Menargetkan elemen yang sesuai dengan fragment identifier di URL (misalnya #section) ⭐⭐⭐
:target-within Menargetkan elemen yang mengandung target ⭐⭐⭐

🌳 Tree-structural Pseudo-classes

Digunakan untuk menarget elemen berdasarkan struktur DOM-nya.

Pseudo-class Keterangan Prioritas
:root Menargetkan elemen root dari dokumen (biasanya )—berguna untuk deklarasi CSS global seperti variabel ⭐⭐⭐⭐⭐
:empty Menargetkan elemen yang tidak memiliki anak (termasuk teks, komentar, dan elemen) ⭐⭐⭐
:first-child Menargetkan elemen yang merupakan anak pertama dari parent-nya ⭐⭐⭐⭐
:first-of-type Menargetkan elemen pertama dari jenisnya di antara sibling-nya ⭐⭐⭐
:last-child Menargetkan elemen terakhir dari parent-nya ⭐⭐⭐⭐
:last-of-type Menargetkan elemen terakhir dari jenisnya di antara sibling-nya ⭐⭐⭐
:nth-child() Menargetkan elemen berdasarkan urutan posisinya dalam parent ⭐⭐⭐⭐⭐
:nth-last-child() Menargetkan elemen dari belakang berdasarkan urutan dalam parent ⭐⭐⭐⭐
:nth-of-type() Menargetkan elemen berdasarkan urutan dari jenisnya di antara sibling-nya ⭐⭐⭐⭐
:nth-last-of-type() Menargetkan elemen terakhir dari jenisnya di antara sibling-nya dari belakang ⭐⭐⭐
:only-child Menargetkan elemen yang merupakan satu-satunya anak dari parent-nya ⭐⭐⭐⭐⭐
:only-of-type Menargetkan elemen yang merupakan satu-satunya dari jenisnya di antara sibling-nya ⭐⭐

🖱️ User Action Pseudo-classes

Menargetkan elemen berdasarkan interaksi pengguna seperti hover, klik, atau fokus.

Pseudo-class Keterangan Prioritas
:hover Menargetkan elemen saat pointer berada di atasnya ⭐⭐⭐⭐⭐
:active Menargetkan elemen saat sedang di-klik atau di-tap ⭐⭐⭐⭐⭐
:focus Menargetkan elemen saat mendapatkan fokus input (keyboard, mouse, dll) ⭐⭐⭐⭐⭐
:focus-visible Fokus hanya terlihat ketika pengguna menavigasi dengan keyboard/tab (bukan mouse) ⭐⭐⭐⭐
:focus-within Menargetkan elemen yang memiliki anak yang sedang fokus ⭐⭐⭐

🧩 Functional Pseudo-classes

Ini adalah pseudo-class dengan tanda kurung () dan biasanya digunakan untuk membuat selector lebih dinamis dan fleksibel.

Pseudo-class Keterangan Prioritas
:is() Menyederhanakan penulisan selector kompleks. Cocok untuk menarget banyak elemen sekaligus. ⭐⭐⭐⭐⭐
:where() Mirip seperti :is(), tapi tidak berkontribusi pada specificity (sangat berguna untuk reset atau default styling) ⭐⭐⭐⭐
:has() Selector powerful yang bisa memilih elemen berdasarkan anak/cucu atau kontennya (parent selector!) ⭐⭐⭐⭐⭐
:not() Menargetkan elemen kecuali yang memenuhi selector tertentu ⭐⭐⭐⭐⭐

Keempat pseudo-class ini sangat powerful dan wajib dikuasai karena membuat kita bisa menulis selector yang lebih ekspresif dan maintainable.

Disclaimer: Penilaian kolom prioritas datangnya murni dari opini saya sendiri. Jadi jika kamu tidak setuju, silakan sesuaikan.

Kalau kamu suka cheat sheet ini, jangan lupa 💖 save, 🗨️ comment, atau 🔁 share ke sesama web developer lainnya!

Sampai jumpa di tulisan selanjutnya 👋

Comments 0 total

    Add comment