· CSSFlexboxGridLayout

CSS Flexbox vs Grid: Kapan Pakai Yang Mana?

Panduan lengkap perbedaan Flexbox dan CSS Grid: satu vs dua dimensi, kapan pakai yang mana, contoh nyata, kesalahan umum, dan cara menggabungkan keduanya.

Pembuat Hyper Sheets & BelajarWeb.dev

Flexbox dan CSS Grid sama-sama sistem layout CSS modern, dan pertanyaan yang paling sering muncul adalah: kapan pakai yang mana? Jawaban singkatnya: pakai Flexbox saat kamu menata item dalam satu dimensi (satu baris ATAU satu kolom), dan pakai CSS Grid saat kamu menata dalam dua dimensi (baris DAN kolom sekaligus). Flexbox berpikir dari isi konten ke luar, sedangkan Grid berpikir dari kerangka layout ke dalam. Keduanya bukan saingan — di proyek nyata kamu hampir selalu memakai keduanya berdampingan. Artikel ini membedah perbedaan itu sampai ke akarnya, lengkap dengan contoh kode yang bisa langsung kamu pakai.

Kalau kamu benar-benar baru di dunia CSS dan istilah “layout” saja masih asing, tidak apa-apa. Anggap Flexbox dan Grid sebagai dua alat untuk mengatur posisi kotak-kotak di halaman. Sebelum kamu bisa mengaturnya, kamu perlu paham bahwa setiap elemen HTML adalah sebuah kotak — konsep yang dibahas di panduan membuat website pertama. Sesudah itu, dua alat inilah yang akan kamu pakai setiap hari.

Perbedaan Fundamental

Perbedaan paling inti antara keduanya cuma satu kata: dimensi. Flexbox mengatur item pada satu sumbu saja dalam satu waktu, sementara Grid mengatur dua sumbu secara bersamaan. Dari perbedaan tunggal inilah semua perbedaan lain mengalir.

FlexboxCSS Grid
Dimensi1D (baris ATAU kolom)2D (baris DAN kolom)
PendekatanDari konten ke luarDari layout ke dalam
KontrolItem menentukan ukurannyaGrid menentukan ukuran item
Use case utamaAlignment, distribusi spaceLayout halaman, grid gallery

Mari kita bongkar tiap baris tabel itu, karena inilah yang benar-benar penting untuk dipahami:

  • Dimensi. Flexbox menyusun anak-anaknya dalam satu garis lurus. Kamu memilih apakah garis itu horizontal (flex-direction: row) atau vertikal (flex-direction: column), tapi hanya satu arah pada satu waktu. Grid menggambar kisi yang punya kolom sekaligus baris, jadi kamu bisa menempatkan item di perpotongan keduanya.
  • Pendekatan. Di Flexbox, ukuran container mengikuti isi. Item-item “mengalir” dan mengisi ruang sesuai kebutuhan masing-masing — cocok saat kamu tidak tahu persis berapa banyak item atau seberapa lebar tiap item. Di Grid, kamu menggambar kerangkanya dulu (“saya mau 3 kolom, kolom kiri 250px, sisanya dibagi rata”), baru item dimasukkan ke dalam sel-sel itu.
  • Kontrol ukuran. Flexbox memberi item kebebasan menentukan ukuran sendiri lewat flex-grow, flex-shrink, dan flex-basis, lalu membagi sisa ruang. Grid memegang kendali dari container: grid-template-columns menentukan lebar tiap kolom, dan item menyesuaikan.
  • Use case. Karena sifat-sifat di atas, Flexbox unggul untuk komponen kecil (navbar, toolbar, deretan tombol), sedangkan Grid unggul untuk struktur besar (layout halaman, galeri kartu, dashboard).

Kalau kamu ingin fondasi ukuran elemen yang lebih kokoh sebelum masuk ke layout, pelajari dulu bagaimana width dan height bekerja di CSS — pemahaman itu membuat flex-basis dan minmax() jadi jauh lebih masuk akal.

Satu Dimensi vs Dua Dimensi

Inti dari seluruh perdebatan “Flexbox atau Grid” bisa diringkas jadi satu pertanyaan: apakah kamu menata dalam satu garis, atau dalam sebuah kisi? Kalau item-itemmu berbaris dalam satu arah dan boleh membungkus (wrap) seenaknya, itu pekerjaan Flexbox. Kalau kamu butuh item sejajar rapi baik secara horizontal maupun vertikal sekaligus, itu pekerjaan Grid.

Mari kita bikin ini konkret. Bayangkan deretan tombol di sebuah toolbar:

.toolbar {
  display: flex;
  gap: 0.5rem;
}

Tombol-tombol ini berbaris ke kanan. Kalau layarnya sempit dan kamu tambahkan flex-wrap: wrap, tombol yang tidak muat akan turun ke baris berikutnya. Tapi — dan ini kuncinya — tombol di baris kedua tidak wajib sejajar dengan tombol di baris pertama. Flexbox tidak peduli soal itu. Setiap baris berdiri sendiri.

Sekarang bandingkan dengan galeri foto yang harus rapi seperti kertas kotak-kotak:

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

Di sini setiap foto menempati sel yang tepat. Kolom 1 baris 2 pasti sejajar dengan kolom 1 baris 1. Keteraturan dua arah inilah yang tidak bisa dijamin Flexbox tapi diberikan gratis oleh Grid.

Aturan praktisnya: kalau kamu mendapati diri menghitung “baris” dan “kolom” secara bersamaan, berhenti pakai Flexbox dan pindah ke Grid. Sebaliknya, kalau kamu cuma butuh “susun benda-benda ini dalam satu garis dan bagi ruangnya”, Flexbox lebih ringan dan lebih pas.

Kapan Pakai Flexbox?

Pakai Flexbox setiap kali kamu menata sekelompok item dalam satu garis dan ingin mengatur perataan (alignment) serta pembagian ruang di antara mereka. Flexbox paling bersinar untuk komponen berukuran kecil sampai menengah yang isinya bisa berubah-ubah. Kalau kamu masih baru dengan konsepnya, mulai dari materi dasar Flexbox dulu — di sini kita fokus ke kapan memakainya. Flexbox ideal untuk:

1. Navbar

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

Logo di kiri, menu di kanan — satu baris, satu dimensi. Flexbox sempurna. justify-content: space-between mendorong dua kelompok item ke ujung yang berlawanan, sementara align-items: center menyejajarkan tingginya di tengah. Tanpa Flexbox, kamu dulu harus main float dan clearfix yang bikin pusing.

2. Centering

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

Centering vertikal dan horizontal — yang dulu jadi meme karena susahnya — sekarang cukup 3 baris CSS. justify-content mengatur sumbu utama (main axis), align-items mengatur sumbu silang (cross axis). Kalau kamu ingin memahami dua sumbu ini lebih dalam, materi alignment Flexbox menjelaskan main axis vs cross axis dengan visual yang jelas.

3. Distribusi Space

.card-row {
  display: flex;
  gap: 1rem;
}

.card {
  flex: 1;  /* semua card ukuran sama */
}

flex: 1 adalah singkatan dari flex: 1 1 0 — artinya setiap card boleh tumbuh dan menyusut dengan porsi yang sama, dimulai dari basis 0. Hasilnya: semua card lebarnya identik dan mengisi seluruh baris secara merata, apa pun jumlahnya. Ganti jadi flex: 2 pada satu card dan card itu akan dapat porsi dua kali lipat.

4. Item yang Ukurannya Bervariasi

Flexbox membiarkan item menentukan ukurannya sendiri, lalu mendistribusikan sisa space. Cocok untuk toolbar, tag list, atau breadcrumb. Bayangkan deretan tag artikel: satu tag isinya “CSS” (pendek), satu lagi “Progressive Web App” (panjang). Flexbox membiarkan tiap tag selebar isinya, lalu memberi jarak seragam di antaranya — sesuatu yang canggung dilakukan dengan lebar kolom yang kaku.

Coba Flexbox

Teori paling nempel kalau kamu langsung mengutak-atiknya. Ubah properti di demo di bawah ini dan perhatikan bagaimana item bergeser secara real time:

Coba Sendiri

1
2
3
.container {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: flex-start;
}

Mau eksperimen lebih jauh? Ada playground Flexbox interaktif dengan semua properti lengkap, atau kalau mau sambil main, coba game Kodok Flexbox — kamu memandu kodok ke daun teratai pakai justify-content dan align-items. Untuk pembahasan Flexbox yang benar-benar tuntas, ada juga artikel mendalam Memahami Flexbox di blog ini.

Kapan Pakai CSS Grid?

Pakai CSS Grid setiap kali kamu perlu menata dalam dua dimensi — ketika item harus sejajar rapi baik antar-kolom maupun antar-baris. Grid adalah alat terbaik untuk kerangka besar sebuah halaman dan untuk susunan yang teratur seperti tabel atau galeri. Belum familiar dengan grid-template-columns dan kawan-kawannya? Lewati dulu ke materi dasar CSS Grid. Grid ideal untuk:

1. Layout Halaman

.page {
  display: grid;
  grid-template-columns: 250px 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "sidebar header"
    "sidebar main"
    "sidebar footer";
  min-height: 100vh;
}

Dua dimensi — kolom sidebar + konten, baris header + main + footer. Grid unggul di sini. Yang bikin grid-template-areas istimewa adalah kamu bisa “menggambar” layout pakai nama, lalu tinggal menempelkan tiap elemen ke areanya:

.sidebar { grid-area: sidebar; }
.header  { grid-area: header; }
.main    { grid-area: main; }
.footer  { grid-area: footer; }

Kode ini nyaris seperti membaca peta. Kalau kamu ingin mendalami teknik penamaan area ini, materi grid areas membahasnya langkah demi langkah.

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 1rem;
}

auto-fill + minmax = grid yang otomatis responsif tanpa media query! Terjemahan baris itu: “buat sebanyak mungkin kolom yang muat, di mana tiap kolom minimal 250px dan maksimal membagi ruang secara rata”. Di layar lebar kamu dapat 4-5 kolom; di ponsel otomatis menyusut jadi 1 kolom. Nol media query, dan inilah salah satu trik CSS modern paling berguna yang wajib kamu hafal.

3. Dashboard Layout

.dashboard {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.widget-large {
  grid-column: span 2;
  grid-row: span 2;
}

Item bisa span multiple kolom dan baris — sesuatu yang sulit dilakukan dengan Flexbox. Widget besar mengambil area 2x2, widget kecil mengisi sel 1x1 di sekitarnya, dan Grid menyusun semuanya tanpa tumpang tindih. Coba tiru layout ini dengan Flexbox dan kamu akan langsung merasakan kenapa Grid ada.

Coba CSS Grid

Sama seperti Flexbox, cara tercepat memahami Grid adalah dengan menggeser-geser propertinya sendiri. Eksperimen dengan demo di bawah ini:

Coba Sendiri

1
2
3
4
5
6
.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
  gap: 16px;
}

Untuk latihan yang lebih dalam, ada playground CSS Grid dan game Kebun Grid — menanam sayuran di petak kebun pakai grid-column dan grid-row. Kalau ingin bacaan panjang yang mengupas Grid dari nol, lanjut ke panduan mendalam Memahami CSS Grid.

Perbandingan Langsung

Cara terbaik menangkap bedanya adalah dengan menyelesaikan masalah yang sama pakai kedua alat, lalu membandingkan hasilnya. Berikut dua kasus klasik yang sering bikin bingung.

Contoh: Card Layout Responsif

Dengan Flexbox:

.cards {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.card {
  flex: 1 1 300px;  /* grow, shrink, basis */
}

Masalah: baris terakhir yang tidak penuh akan stretch — kalau baris terakhir cuma berisi satu card, card itu bisa melar selebar seluruh baris dan terlihat aneh dibanding card di atasnya.

Dengan Grid:

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

Grid menjaga ukuran kolom konsisten, bahkan di baris terakhir. Satu card yang sendirian di baris terakhir tetap selebar kolom, bukan melar penuh. Untuk galeri yang benar-benar rapi, Grid hampir selalu jawabannya. (Catatan kecil: kalau kamu ingin sisa baris ikut melar, auto-fit — bukan auto-fill — akan meruntuhkan kolom kosong dan meregangkan yang ada.)

Contoh: Header dengan Logo + Menu + CTA

Dengan Flexbox (lebih cocok):

header {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.nav-links { margin-left: auto; }
.cta { margin-left: 1rem; }

Trik margin-left: auto di sini mendorong menu dan CTA ke kanan, menyisakan logo sendirian di kiri — teknik khas Flexbox yang tidak punya padanan sesederhana di Grid.

Dengan Grid:

header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
}

Keduanya bisa, tapi Flexbox lebih natural untuk kasus ini karena itemnya bervariasi ukuran dan cuma satu baris. Grid akan memaksamu memikirkan jumlah kolom, padahal isinya satu deret sederhana.

Mini-Project: Kerangka Landing Page

Mari satukan semuanya dalam satu contoh utuh yang mencerminkan proyek nyata: kerangka landing page dengan header, hero, grid fitur, dan footer. Perhatikan bagaimana Grid dan Flexbox mengambil peran masing-masing tanpa saling menginjak.

Mulai dari HTML-nya:

<body>
  <header class="site-header">
    <div class="logo">BelajarWeb</div>
    <nav class="nav-links">
      <a href="#">Materi</a>
      <a href="#">Blog</a>
      <a href="#">Masuk</a>
    </nav>
  </header>

  <main>
    <section class="hero">
      <h1>Belajar Web Development dari Nol</h1>
      <p>Interaktif, gratis, dan berbahasa Indonesia.</p>
      <button>Mulai Sekarang</button>
    </section>

    <section class="features">
      <article class="feature">Materi Terstruktur</article>
      <article class="feature">Latihan Interaktif</article>
      <article class="feature">Komunitas Aktif</article>
    </section>
  </main>

  <footer class="site-footer">© 2026 BelajarWeb</footer>
</body>

Sekarang CSS-nya. Pertama, kerangka besar halaman pakai Grid karena kita menata beberapa baris besar (header, main, footer) dari atas ke bawah:

body {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
  margin: 0;
}

auto 1fr auto artinya header dan footer setinggi isinya, sedangkan main mengambil semua sisa ruang — ini yang membuat footer “menempel” di bawah bahkan saat konten sedikit (pola sticky footer klasik).

Berikutnya, header. Isinya cuma satu baris berisi logo dan menu, jadi ini tugas Flexbox:

.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem;
}

.nav-links {
  display: flex;
  gap: 1.5rem;
}

Perhatikan: .nav-links sendiri juga sebuah flex container. Bersarangnya flex di dalam flex seperti ini sangat lazim dan sama sekali bukan masalah.

Lalu hero. Kita ingin judul, paragraf, dan tombol tersusun vertikal dan terpusat, jadi Flexbox arah kolom:

.hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  text-align: center;
  padding: 4rem 1rem;
}

Terakhir, grid fitur. Tiga kartu yang harus rapi dan responsif — ini murni tugas Grid:

.features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
  padding: 2rem;
}

.feature {
  padding: 2rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
}

Hasil akhirnya: satu halaman di mana Grid mengatur struktur vertikal besar, Flexbox menata isi tiap bagian, dan Grid lagi untuk galeri fitur. Inilah pola yang akan kamu tulis berulang kali sepanjang karier front-end. Setelah paham polanya, kamu tinggal menerapkannya di framework mana pun — misalnya saat membangun UI di React dari nol, struktur CSS-nya persis sama.

Menggabungkan Keduanya

Dalam praktik, kamu hampir selalu menggabungkan Flexbox dan Grid. Bukan memilih salah satu untuk seluruh halaman, melainkan memakai alat yang tepat di setiap tingkatan sarang (nesting). Aturannya sederhana: Grid untuk kerangka besar, Flexbox untuk isi tiap sel.

/* Grid untuk layout utama */
.page {
  display: grid;
  grid-template-columns: 250px 1fr;
}

/* Flexbox untuk navbar di dalam grid */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Grid untuk card section */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

/* Flexbox untuk konten di dalam card */
.card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

Contoh terakhir itu — .card sebagai flex column dengan justify-content: space-between — adalah pola emas untuk kartu yang tingginya sama tapi isinya beda panjang: judul menempel di atas, tombol menempel di bawah, dan ruang kosong terdistribusi di tengah. Sebuah kartu bisa jadi grid item (di mata .card-grid) sekaligus flex container (untuk isinya sendiri) pada waktu bersamaan. Tidak ada konflik; keduanya beroperasi di lapisan berbeda.

Flexbox dan Grid di Tailwind CSS

Semua konsep di atas berlaku sama persis di Tailwind CSS — hanya sintaksnya berubah dari properti CSS jadi utility class. display: flex menjadi flex, justify-content: space-between menjadi justify-between, dan display: grid menjadi grid. Prinsip satu-vs-dua dimensinya tidak berubah sedikit pun.

<!-- Flexbox: navbar -->
<nav class="flex items-center justify-between">
  <span>Logo</span>
  <div class="flex gap-6">Menu</div>
</nav>

<!-- Grid: galeri responsif -->
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
</div>

Karena utility-nya bernama nyaris identik dengan properti CSS aslinya, memahami Flexbox dan Grid “murni” dulu membuat Tailwind terasa gampang. Kamu tinggal menerjemahkan. Materi Grid di Tailwind menunjukkan padanan lengkapnya, dan kalau kamu baru mau memulai Tailwind, ada panduan Tailwind CSS untuk pemula di blog ini.

Kesalahan Umum

Kebanyakan masalah layout bukan karena Flexbox atau Grid “bug”, melainkan karena salah memilih alat atau salah paham cara kerja sumbunya. Berikut kesalahan yang paling sering kutemui.

1. Memaksa Flexbox untuk layout dua dimensi. Gejalanya: kamu menumpuk banyak flex-wrap dan menghitung lebar flex-basis manual supaya baris-baris sejajar. Kalau kamu sudah berjuang keras agar item di baris kedua sejajar dengan baris pertama, itu tanda kamu butuh Grid. Berhenti melawan Flexbox.

2. Tertukar antara justify-content dan align-items. Di Flexbox, justify-content bekerja di sepanjang sumbu utama (arah flex-direction), sedangkan align-items bekerja di sumbu silang (tegak lurus). Begitu kamu mengubah flex-direction: column, keduanya bertukar peran: justify-content sekarang mengatur vertikal, align-items mengatur horizontal. Ini sumber kebingungan nomor satu bagi pemula.

3. Pakai margin dan padding untuk memberi jarak antar item, bukan gap. Dulu kita terpaksa main margin karena gap belum didukung Flexbox. Sekarang gap sudah bekerja mulus di Flexbox maupun Grid. Pakai gap — lebih bersih, tidak meninggalkan margin nyasar di item pertama atau terakhir.

/* Hindari cara lama */
.item { margin-right: 1rem; }

/* Pakai cara modern */
.container { display: flex; gap: 1rem; }

4. Lupa bahwa height: 100% butuh induk yang tinggi. Persentase tinggi mengacu ke tinggi elemen induk. Kalau induk tidak punya tinggi eksplisit, height: 100% tidak berefek. Ini bagian dari cara kerja properti dimensi yang dibahas tuntas di artikel width dan height. Untuk mengisi tinggi layar, min-height: 100vh biasanya lebih andal.

5. Menganggap Grid selalu lebih “canggih” jadi harus dipakai di mana-mana. Grid bukan versi upgrade dari Flexbox. Untuk satu deretan tombol atau proses centering sederhana, Flexbox lebih ringkas dan lebih ekspresif. Pilih berdasarkan bentuk masalah, bukan berdasarkan mana yang terdengar lebih keren.

6. Bingung kenapa justify-content: center tidak menengahkan apa pun. Cek dulu: apakah container-nya benar sudah display: flex atau display: grid? Tanpa salah satunya, properti-properti itu tidak punya arti. Kesalahan sepele ini memakan lebih banyak waktu debugging daripada yang layak.

Cheat Sheet

Gunakan Flexbox saat:

  • Layout satu baris atau satu kolom
  • Centering konten
  • Distribusi space antar item
  • Item dengan ukuran yang bervariasi
  • Komponen kecil (navbar, toolbar, form row)

Gunakan Grid saat:

  • Layout dua dimensi (baris DAN kolom)
  • Layout halaman utama
  • Gallery atau card grid
  • Item perlu span multiple kolom/baris
  • Kamu ingin kontrol presisi atas placement

FAQ

Apa perbedaan Flexbox dan Grid dalam satu kalimat?

Flexbox menata item dalam satu dimensi (satu baris atau satu kolom), sedangkan Grid menata dalam dua dimensi (baris dan kolom sekaligus). Flexbox berangkat dari konten, Grid berangkat dari kerangka layout.

Mana yang harus dipelajari lebih dulu, Flexbox atau Grid?

Pelajari Flexbox lebih dulu. Konsepnya lebih sederhana (cuma satu sumbu), langsung berguna untuk navbar dan centering yang kamu butuhkan hampir di setiap proyek, dan pemahaman soal main axis vs cross axis akan mempermudah saat kamu naik ke Grid. Setelah nyaman dengan Flexbox, lanjut ke Grid untuk layout halaman.

Apakah Flexbox dan Grid bisa dipakai bersamaan?

Bisa, dan justru itu praktik yang paling umum. Kamu biasanya memakai Grid untuk kerangka besar halaman lalu Flexbox untuk menata isi di dalam tiap bagian. Satu elemen bahkan bisa menjadi grid item dan flex container sekaligus — keduanya bekerja di lapisan yang berbeda tanpa saling bertabrakan.

Apakah Grid menggantikan Flexbox?

Tidak. Grid tidak menggantikan Flexbox; keduanya melengkapi. Untuk susunan satu dimensi seperti deretan tombol atau centering sederhana, Flexbox lebih ringkas. Untuk struktur dua dimensi seperti galeri atau layout halaman, Grid lebih tepat. Pilih sesuai bentuk masalahnya.

Bagaimana cara membuat layout responsif tanpa media query?

Pakai Grid dengan grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)). Baris ini otomatis menambah atau mengurangi jumlah kolom sesuai lebar layar, menjaga tiap kolom minimal 250px. Untuk Flexbox, kombinasi flex-wrap: wrap dengan flex: 1 1 250px memberi efek serupa meski kurang rapi di baris terakhir.

Apakah Flexbox dan Grid didukung semua browser?

Ya. Baik Flexbox maupun CSS Grid sudah didukung penuh oleh semua browser modern (Chrome, Firefox, Safari, Edge) selama bertahun-tahun. Kamu bisa memakainya dengan tenang di proyek produksi tanpa perlu prefix vendor atau fallback khusus untuk mayoritas kasus.

Kesimpulan

Flexbox dan Grid bukan kompetitor — mereka partner. Memahami kapan pakai yang mana (dan kapan menggabungkan keduanya) adalah skill layout CSS yang paling penting di 2026.

Aturan simpel yang bisa kamu bawa pulang: kalau kamu berpikir dalam baris atau kolom, mulai dengan Flexbox. Kalau kamu berpikir dalam grid/tabel dengan keteraturan dua arah, mulai dengan CSS Grid. Dan hampir setiap halaman nyata memakai keduanya — Grid untuk kerangka, Flexbox untuk isi.

Mau menyelami masing-masing lebih dalam? Baca pembahasan lengkap Flexbox dan panduan mendalam CSS Grid di blog ini. Selamat menata layout!