Pengertian
CSS Flexible Box Layout, atau biasa disebut Flexbox, adalah model layout satu dimensi yang dirancang untuk mengatur, menyelaraskan, dan mendistribusikan ruang di antara item dalam sebuah wadah (container), bahkan ketika ukurannya tidak diketahui atau dinamis. Flexbox memungkinkan kita untuk membuat layout yang kompleks dengan lebih sedikit kode dan tanpa perlu menggunakan float atau position.
Analogi
Analogi: Buku di Rak
Bayangkan sebuah rak buku sebagai flex container dan buku-buku di dalamnya adalah flex items. Dengan Flexbox, Anda adalah pustakawan yang bisa dengan mudah mengatur buku-buku tersebut: merapat ke kiri (flex-start), ke kanan (flex-end), di tengah (center), atau memberi jarak yang sama di antara setiap buku (space-between). Anda juga bisa membuat buku-buku tersebut mengisi seluruh lebar rak secara proporsional.
Contoh Kode & Hasil
1. Membuat Flex Container
Dasar dari Flexbox adalah dengan mendeklarasikan display: flex; pada elemen pembungkus.
.container { display: flex; }
2. Properti justify-content
Mengatur perataan item secara horizontal.
.container { display: flex; justify-content: center; /* Pilihan lain: flex-start, flex-end, space-between, space-around */ }
3. Properti align-items
Mengatur perataan item secara vertikal.
.container { display: flex; height: 120px; align-items: center; /* Pilihan lain: flex-start, flex-end, stretch */ }
4. Properti flex-direction
Mengubah arah susunan item.
.container { display: flex; flex-direction: column; /* Default: row */ }
5. Properti flex-grow pada Item
Membuat item "tumbuh" untuk mengisi ruang yang tersedia.
.item-tumbuh { flex-grow: 1; }
Latihan Mandiri
Tugas: Membuat Navbar Sederhana
- Buat sebuah
<nav>sebagai container. - Di dalamnya, letakkan sebuah
<h2>untuk logo dan sebuah<ul>untuk menu. - Jadikan
<nav>sebagai flex container. - Gunakan
justify-content: space-between;untuk mendorong logo ke kiri dan menu ke kanan. - Gunakan
align-items: center;untuk membuat logo dan menu sejajar secara vertikal. - Jadikan
<ul>sebagai flex container juga untuk menyejajarkan item-item menunya.
Kesimpulan
Flexbox adalah alat yang wajib dikuasai untuk layouting modern. Ia menyederhanakan banyak tugas yang dulunya sulit, seperti centering vertikal, membuat kolom yang sama tinggi, dan mendistribusikan ruang secara merata. Dengan memahami konsep container dan item, serta properti-properti utamanya, Anda dapat membuat layout yang bersih dan responsif dengan jauh lebih mudah.