Css Selector
Dalam CSS, memilih elemen tidak hanya sebatas menggunakan class atau id. Kamu bisa memilih sebuah elemen berdasarkan posisinya terhadap elemen lain dalam struktur HTML. Ini sering disebut sebagai Combinators, yang memungkinkan kamu membuat aturan yang sangat spesifik tanpa harus menambah banyak class di HTML.
1. Penjelasan
Bayangkan struktur HTML sebagai sebuah pohon keluarga. Ada orang tua (parent), anak (child), dan saudara (sibling). CSS menyediakan empat cara utama untuk menargetkan elemen berdasarkan hubungan ini:
- Descendant Selector (Spasi): Memilih semua elemen di dalam elemen tertentu.
- Child Selector (
>): Hanya memilih elemen yang merupakan anak langsung (direct child). - Adjacent Sibling Selector (
+): Memilih satu elemen yang tepat berada setelah elemen lain (adik pertama). - General Sibling Selector (
~): Memilih semua elemen saudara yang muncul setelah elemen tersebut.
Penting: Selector ini bekerja dari kiri ke kanan. Misalnya, div > p berarti "cari elemen p yang merupakan anak langsung dari div". Pastikan kamu memahami struktur HTML-mu agar tidak salah!
2. Sintaksis & Properti
Mari kita lihat perbedaan penulisannya dalam kode:
/* 1. Descendant: Semua <p> di dalam <div> akan berwarna abu-abu */
div p {
color: gray;
}
/* 2. Child: Hanya <p> yang merupakan anak langsung dari <article> yang akan tebal */
article > p {
font-weight: bold;
}
/* 3. Adjacent Sibling: Hanya <p> pertama tepat setelah <h1> yang akan berukuran besar */
h1 + p {
font-size: 1.5rem;
}
/* 4. General Sibling: Semua <p> yang berada setelah <h2> (di level yang sama) akan miring */
h2 ~ p {
font-style: italic;
}3. Studi Kasus: Styling Blog Post Layout
Kamu sedang merapikan tampilan artikel blog. Kamu ingin paragraf pertama (lead) terlihat lebih menonjol setelah judul, dan daftar menu di dalam navigasi tetap rapi.
<section class="blog-content">
<h1>Judul Artikel Keren</h1>
<p>Ini adalah paragraf intro (lead) yang harusnya lebih besar.</p>
<p>Ini paragraf biasa yang menjelaskan isi artikel.</p>
<div class="author-box">
<p>Ditulis oleh: Budi</p> </div>
</section>/* Kita ingin semua paragraf di blog berwarna gelap */
.blog-content p {
color: #333;
}
/* Kita ingin HANYA paragraf pertama setelah H1 yang menonjol */
.blog-content h1 + p {
font-size: 1.25rem;
color: #2c3e50;
line-height: 1.6;
}
/* Kita tidak ingin p di dalam author-box ikut berubah ukurannya */
.blog-content > p {
margin-bottom: 20px;
}Link Style
Link adalah elemen fundamental di web. Tanpa styling, link hanya akan terlihat sebagai teks biru bergaris bawah.
Css Positioning
Secara default, elemen HTML akan mengalir dari atas ke bawah (block) atau kiri ke kanan (inline). Positioning adalah fitur CSS yang memungkinkan kamu untuk "keluar" dari aliran normal tersebut dan meletakkan elemen di posisi yang sangat spesifik, bahkan menumpuk di atas elemen lain.