π Pendahuluan
Yo squad! Kali ini kita bakal ngobrolin CSS Grid nih, teknologi layout yang bakal bikin website lo makin kece! CSS Grid ini ibarat papan catur digital yang bikin lo bisa ngatur layout website dengan lebih fleksibel dan powerful.
Kenapa Harus Belajar CSS Grid?
- Layout jadi lebih rapi dan terstruktur
- Bikin responsive design jadi lebih gampang
- Bisa bikin layout kompleks tanpa nested div yang ribet
- Support di semua browser modern
π Prasyarat
Sebelum mulai, pastiin lo udah paham:
- HTML dasar
- CSS dasar (selectors, box model, positioning)
- Flexbox (recommended)
π― Konsep Dasar CSS Grid
Grid Container
Ini adalah element parent yang bakal jadi wadah grid lo. Cara bikinnya gampang:
.container {
display: grid;
}
Grid Item
Element-element yang ada di dalam Grid Container. Contoh:
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
</div>
Grid Line
Garis-garis yang membentuk struktur grid, bisa horizontal atau vertical.
Grid Cell
Kotak individual dalam grid, kayak sel di Excel gitu.
π‘ Property Penting CSS Grid
1. grid-template-columns
.container {
display: grid;
grid-template-columns: 200px 200px 200px; /* 3 kolom dengan width 200px */
/* atau */
grid-template-columns: repeat(3, 1fr); /* 3 kolom dengan width yang sama */
}
2. grid-template-rows
.container {
grid-template-rows: 100px 200px; /* 2 baris dengan height berbeda */
}
3. grid-gap
.container {
gap: 20px; /* jarak antar grid items */
/* atau */
row-gap: 20px;
column-gap: 10px;
}
π¨ Project Praktik
Project 1: Simple Photo Gallery
Wireframe:
+-------+-------+-------+
| img | img | img |
+-------+-------+-------+
| img | img | img |
+-------+-------+-------+
Kode:
<div class="gallery">
<img src="img1.jpg">
<img src="img2.jpg">
<img src="img3.jpg">
<img src="img4.jpg">
<img src="img5.jpg">
<img src="img6.jpg">
</div>
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
padding: 10px;
}
.gallery img {
width: 100%;
height: 200px;
object-fit: cover;
}
Project 2: Dashboard Layout
Wireframe:
+--------+----------------+
| Sidebar| Content |
| | |
| +----------------+
| | Footer |
+--------+----------------+
Kode:
<div class="dashboard">
<div class="sidebar">Sidebar</div>
<div class="content">Content</div>
<div class="footer">Footer</div>
</div>
.dashboard {
display: grid;
grid-template-columns: 250px 1fr;
grid-template-rows: 1fr auto;
grid-template-areas:
"sidebar content"
"sidebar footer";
min-height: 100vh;
}
.sidebar { grid-area: sidebar; }
.content { grid-area: content; }
.footer { grid-area: footer; }
π§ Troubleshooting
Masalah Umum:
- Grid items tidak sejajar
- Solution: Periksa grid-template-columns dan rows
- Gap tidak muncul
- Solution: Pastikan syntax gap sudah benar
π Browser Support
- Chrome β
- Firefox β
- Safari β
- Edge β
π Grid vs Flexbox
Grid
- Untuk layout 2 dimensi (rows & columns)
- Cocok untuk layout page-level
- Lebih powerful untuk layout kompleks
Flexbox
- Untuk layout 1 dimensi
- Cocok untuk component-level
- Lebih simple untuk layout sederhana
π Resources Lanjutan
- CSS Grid Garden – Game untuk belajar Grid
- MDN Web Docs – Dokumentasi lengkap
- CSS-Tricks Complete Guide to Grid
π‘ Tips & Tricks
- Gunakan Firefox DevTools untuk debugging Grid
- Manfaatkan minmax() untuk responsive design
- Kombinasikan dengan Flexbox untuk hasil terbaik
π Kesimpulan
Nah, sekarang lo udah paham dasar-dasar CSS Grid! Praktekkin terus dan jangan takut eksperimen. CSS Grid emang powerful banget dan bakal jadi skill yang super berguna buat front-end development.
Happy coding! π