1. Pengantar ke Flexbox
Apa itu Flexbox?
Flexbox (Flexible Box Layout) adalah model layout CSS modern yang dirancang untuk membuat interface yang dinamis dan fleksibel. Diperkenalkan untuk mengatasi keterbatasan layout tradisional seperti floats dan positioning.
Keunggulan Flexbox
- Layout yang lebih intuitif
- Alignment vertikal yang mudah
- Order konten yang fleksibel
- Distribusi space otomatis
- Responsif secara alami
2. Konsep Dasar
Flex Container
Container adalah elemen parent yang memiliki display: flex
. Semua manipulasi layout utama dimulai dari sini.
.container {
display: flex;
}
Flex Items
Child elements dalam flex container secara otomatis menjadi flex items.
Main Axis vs Cross Axis
- Main Axis: Arah utama layout (horizontal/vertical)
- Cross Axis: Arah yang tegak lurus dengan main axis
3. Property Flexbox Utama
Container Properties
.container {
display: flex;
flex-direction: row | column;
justify-content: space-between;
align-items: center;
}
Item Properties
.item {
flex: 1;
order: 2;
align-self: flex-start;
}
4. Pattern Layout Populer
Navbar Responsif
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem;
}
Card Gallery
.gallery {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.card {
flex: 0 1 300px;
}
5. Tips & Trik
Best Practices
- Gunakan flex shorthand
- Manfaatkan gap property
- Pertimbangkan flex-basis vs width
Debugging
- Inspect dengan DevTools
- Cek alignment issues
- Monitor responsive behavior
6. Resources
Tools
Browser Support
Flexbox didukung oleh semua browser modern (IE11+)
Latihan Praktik
Project 1: Navbar
<nav class="navbar">
<div class="logo">Brand</div>
<ul class="nav-links">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem;
background: #333;
color: white;
}
.nav-links {
display: flex;
gap: 1rem;
list-style: none;
}
Kesimpulan
Flexbox adalah tool powerful untuk layout modern. Dengan pemahaman yang baik tentang konsep dasarnya, Anda dapat membuat layout yang kompleks dengan lebih mudah dan maintainable.