Panduan lengkap CSS Pseudo-classes & Elements untuk styling web modern
Pseudo-classes dan pseudo-elements adalah fitur CSS yang memungkinkan Anda memilih elemen berdasarkan keadaan atau bagian tertentu dari elemen tersebut.
/* Pseudo-classes */
a:hover {
color: #a855f7;
transition: color 0.3s ease;
}
input:focus {
outline: 2px solid #9333ea;
border-color: transparent;
}
/* Structural pseudo-classes */
li:nth-child(odd) {
background: rgba(147, 51, 234, 0.1);
}
/* Pseudo-elements */
.card::before {
content: "";
position: absolute;
background: linear-gradient(45deg, #9333ea, #a855f7);
}
đ Penjelasan Detail:
âĸ :hover
- Pseudo-class untuk keadaan hover
âĸ :focus
- Pseudo-class untuk keadaan fokus
âĸ :nth-child()
- Pseudo-class untuk memilih elemen berdasarkan urutan
âĸ ::before
- Pseudo-element untuk menambahkan konten sebelum elemen
âĸ ::after
- Pseudo-element untuk menambahkan konten setelah elemen
/* Combining pseudo-classes */
button:hover:focus {
background: #9333ea;
color: white;
}
/* Using pseudo-elements with content */
.tooltip::after {
content: "Info";
background: #a855f7;
color: white;
}
/* Customizing form elements */
input:disabled {
opacity: 0.5;
cursor: not-allowed;
}
Pseudo-classes dan pseudo-elements didukung penuh oleh semua browser modern (Chrome, Firefox, Safari, Edge). Beberapa pseudo-class seperti :focus-within
memerlukan dukungan tambahan di browser lama.
/* Common Pseudo-classes */
:hover /* Elemen saat dihover */
:focus /* Elemen saat fokus */
:active /* Elemen saat aktif */
:first-child /* Elemen pertama */
:last-child /* Elemen terakhir */
/* Common Pseudo-elements */
::before /* Konten sebelum elemen */
::after /* Konten setelah elemen */
::first-line /* Baris pertama teks */
::first-letter /* Huruf pertama teks */
đ Penjelasan Detail:
âĸ Pseudo-classes digunakan untuk memilih elemen berdasarkan keadaan atau posisi.
âĸ Pseudo-elements digunakan untuk memilih bagian tertentu dari elemen.
âĸ :hover dan :focus adalah pseudo-class yang paling umum digunakan.
âĸ ::before dan ::after adalah pseudo-elements yang sering digunakan untuk styling tambahan.
/* Custom scrollbar */
::-webkit-scrollbar {
width: 10px;
}
/* Styling placeholder text */
::placeholder {
color: #a855f7;
opacity: 0.7;
}
/* Selecting empty elements */
div:empty {
display: none;
}
Pseudo-elements seperti ::placeholder
dan ::-webkit-scrollbar
memiliki dukungan terbatas di beberapa browser. Selalu periksa kompatibilitas sebelum digunakan.
Gunakan pseudo-classes dan pseudo-elements untuk meningkatkan interaktivitas dan tampilan tanpa menambahkan markup HTML tambahan.
/* â
Good - Simple and effective */
button:hover {
background: #9333ea;
}
/* â Avoid - Overcomplicating */
button:hover:focus:active {
background: #a855f7;
color: white;
border: 2px solid #9333ea;
}
đ Penjelasan Detail:
âĸ Keep it simple - Gunakan pseudo-classes dan pseudo-elements dengan bijak.
âĸ Avoid overcomplicating - Jangan menggabungkan terlalu banyak pseudo-classes.
âĸ Test cross-browser - Selalu uji di berbagai browser untuk memastikan kompatibilitas.
âĸ Use for enhancement - Gunakan fitur ini untuk meningkatkan pengalaman pengguna, bukan sebagai kebutuhan utama.