CSS Dasar
Layouting

Flexbox: Sang Penyelamat Tata Letak 📐

Lupakan float, lupakan position: absolute buat layout dasar. Flexbox adalah cara modern buat ngejejerin elemen, baik ke samping (baris) atau ke bawah (kolom).

1. Konsep Dasar: Supir & Penumpang 🚌

Bayangin Flex Container itu sebuah Bis, dan elemen di dalemnya adalah Penumpang. Supir Bis (Container) punya kuasa penuh buat ngatur posisi penumpangnya.

.container {
  display: flex; /* Mantra pemanggil Flexbox */
}

Begitu lo ketik display: flex, semua anak di dalemnya otomatis bakal Berbaris ke Samping (Row). Gak peduli seberapa lebar mereka, mereka bakal coba muat dalam satu baris.

2. Jurus Mengatur Posisi (X & Y) ↔️↕️

Ada dua properti sakti yang wajib lo hafal di luar kepala.

A. justify-content (Sumbu Utama / Horizontal)

Ini buat ngatur posisi Kiri-Kanan (kalau arahnya Row).

ValueEfeknyaAnalogi
flex-startRata Kiri (Default)Antri sembako normal.
centerRata TengahFoto keluarga.
flex-endRata KananMusuhan sama yang kiri.
space-betweenPojok-pojokanJaga jarak aman (kiri mentok, kanan mentok).
space-aroundAda jarak rataSocial distancing yang adil.
.container {
  display: flex;
  justify-content: center; /* Elemen jadi di tengah layar */
}

B. align-items (Sumbu Silang / Vertikal)

Ini buat ngatur posisi Atas-Bawah.

ValueEfeknya
stretchTarik sampe penuh (Default)
centerTengah Vertikal
flex-startNempel Atas
flex-endNempel Bawah
💡

Trik Paling Dicari: Gimana cara bikin kotak bener-bener di tengah layar (Tengah Kiri-Kanan & Atas-Bawah)?

 
.container {
  display: flex;
  justify-content: center; /* Tengah X */
  align-items: center;     /* Tengah Y */
  height: 100vh;           /* Tinggi set layar penuh */
}

3. Flex Direction 🔄

Kadang lo mau jejerin ke bawah (Kolom), bukan ke samping.

 
.container {
  flex-direction: column;
}
  • row: Default. Ke samping (Kiri ke Kanan).

  • column: Ke bawah (Atas ke Bawah).

  • row-reverse: Ke samping tapi dibalik (Kanan ke Kiri).

  • column-reverse: Ke bawah tapi dibalik (Bawah ke Atas).

Hati-hati: Kalau lo ganti jadi column, sumbunya muter! justify-content jadi ngatur Atas-Bawah, align-items jadi ngatur Kiri-Kanan.

4. Gap ↔️

Dulu kita pake margin-right di setiap anak, terus anak terakhir marginnya dihapus. Ribet. Sekarang ada Gap.

 
.container {
  display: flex;
  gap: 20px; /* Otomatis kasih jarak 20px di antara setiap elemen */
}

5. Cheat Sheet Tailwind 💅

Karena nanti kita pake Tailwind, ini contekan singkatnya: ||CSS Biasa |Tailwind Class| |:---|:---| |display: flex |flex| |flex-direction: column |flex-col| |justify-content: center |justify-center| |justify-content: space-between |justify-between| |align-items: center |items-center| |gap: 20px |gap-5 (20px / 4)|

 
// Contoh di Next.js / Tailwind
<div className="flex flex-col items-center justify-center gap-4">
  <h1>Judul di Tengah</h1>
  <button>Tombol</button>
</div>