Alat yang Anda butuhkan, siap dipakai

Generator CSS Flexbox

Kontainer di panggung adalah Flexbox yang sungguhan. Ubah arah, pembungkusan, perataan, dan jarak, maka item langsung bergeser. Seret pegangan di sudut untuk mengubah lebar dan tinggi, dan Anda bisa melihat kapan item pindah baris atau menyusut. Arsiran menandai ruang tersisa, batang tebal menandai gap, dan arsiran merah menandai panjang yang meluap. Pilih satu item lalu ubah nilai seperti flex: 1, auto, atau none. Rincian ukuran menunjukkan dengan angka bagaimana ruang tersisa dibagi menurut urutan spesifikasi, dan mengapa item tidak mau menyusut lagi. Tata letak yang sudah jadi bisa disalin sebagai CSS dan HTML.

Terakhir diperbarui 2026-10-21Semua perhitungan terjadi di browser Anda
Item 4
Tombol panah ←·→ mengubah lebar dan ↑·↓ mengubah tinggi sebesar 10px. Tambahkan Shift untuk 50px, dan tombol Home menyesuaikan lebar dengan panggung.

Induk.container
Arahflex-direction
Pembungkusanflex-wrap
Perataan sumbu utamajustify-content
Perataan sumbu silangalign-items
Perataan antarbarisalign-content
px
px
Item terpilih.item-1
Pilih flex cepatflex: 0 1 auto

Perataan sumbu silang item inialign-self
Margin auto sumbu utamamargin
Rincian ukuranDihitung ulang sesuai urutan spesifikasi §9.7 lalu dicocokkan dengan nilai peramban

  
Contoh tata letakKlik untuk langsung menerapkannya di panggung

Terakhir diperbarui 2026-10-21Masukan Anda tidak disimpan

Standar ROBERINAlat yang Anda butuhkan,
siap dipakai.
  • Jelas sekilasPosisi input dan hasil terlihat jelas.
  • Hasil lebih duluAngka utama tampil dulu; prosesnya hanya saat dibutuhkan.
  • Minta lebih sedikitTanpa pendaftaran atau data yang tidak perlu.

Generator CSS Flexbox yang memperlihatkan ruang tersisa

Kontainer di panggung Generator CSS Flexbox ini adalah kotak display: flex yang sungguhan. Ubah arah, pembungkusan, perataan, dan jarak pada elemen induk, dan item langsung bergeser di tempatnya. Seret pegangan di sudut untuk mengubah lebar dan tinggi, maka terlihat kapan item pindah ke baris berikutnya dan kapan item menyusut. Garis bantu menunjukkan arah sumbu utama dan sumbu silang dengan anak panah, gap dengan batang tebal, dan ruang tersisa yang tidak dipakai item dengan arsiran dan angka. Jika item keluar dari kontainer, panjang yang meluap ditandai dengan arsiran merah.

Pilih satu item lalu ubah nilai seperti flex: 1, auto, atau none. Kartu Rincian ukuran di bawah akan memperlihatkan bagaimana ruang tersisa dibagi, mengikuti urutan perhitungan dalam spesifikasi CSS Flexbox (§9.7). Hasil hitungan itu dicocokkan dengan ukuran yang benar-benar digambar peramban Anda, dengan selisih maksimal 1px. Jika tata letak sudah sesuai, salin CSS dan HTML-nya, atau gunakan Salin tautan untuk menyimpan kondisi saat ini di dalam alamat.

Kapan memakai Flexbox, dan beda dengan Grid

Flexbox menata item dalam satu arah dan membagi ruang di dalam baris itu. Walaupun dibungkus menjadi beberapa baris, ruang dihitung terpisah untuk tiap baris, sehingga batas kolom antarbaris tidak selalu sejajar. Untuk tata letak seperti tabel yang perlu menyelaraskan baris dan kolom sekaligus, CSS Grid lebih cocok.

  • Menu dan kelompok tombol: dipakai saat item dengan panjang berbeda-beda ditaruh dalam satu baris dan jaraknya diatur dengan gap. Untuk mendorong hanya satu item ke ujung, beri margin auto (contoh 'Bilah navigasi').
  • Perataan tengah horizontal dan vertikal: dipakai saat satu konten harus tepat di tengah tinggi elemen induk, tanpa menghitung posisinya secara terpisah.
  • Kolom isian + tombol, bilah samping + isi: dipakai saat satu sisi berukuran tetap dan sisi lain mengambil seluruh ruang yang tersisa (flex: 0 0 120px dan flex: 1 1 0).
  • Footer di bagian bawah: pada arah vertikal, beri flex-grow pada bagian isi, maka footer tetap menempel di bawah walaupun isinya pendek.
  • Daftar tag atau chip: dipakai saat pembungkusan dinyalakan dan item mengalir sesuai panjang isinya. Jika lebar kolom harus sama di semua baris, seperti pada kartu, pertimbangkan Grid. Pada contoh 'Kartu yang memanjang', kartu di baris terakhir menjadi lebih lebar karena ruang dibagi terpisah untuk tiap baris.

Cara memakai

  1. Pilih titik awal. Klik salah satu dari 12 contoh tata letak, maka pengaturan induk, pengaturan item, dan ukuran kontainer berubah sekaligus. Di layar lebar, panggung menempel di bagian atas layar dan ikut bergeser saat menggulir, sehingga hasil tiap contoh bisa langsung dibandingkan.
  2. Atur induknya. Pilih arah dan pembungkusan lebih dulu, lalu ubah perataan sumbu utama dan sumbu silang. Ikon perataan berputar mengikuti arah saat ini, jadi arah gerak batang di dalam ikon sama dengan arah gerak item yang sebenarnya.
  3. Seret ukurannya. Persempit kontainer dengan pegangan di kanan bawah panggung untuk menemukan titik terjadinya pembungkusan dan penyusutan. Saat pegangan difokuskan, tombol panah mengubah ukuran 10px, bersama Shift 50px, dan tombol Home menyesuaikan lebar dengan panggung.
  4. Rapikan itemnya. Pilih item di panggung atau lewat tombol nomor, lalu ubah teks, nilai flex, urutan, align-self, dan margin auto. Di kartu Rincian ukuran, periksa berapa banyak ruang tersisa yang diterima item itu.
  5. Salin. Gunakan 'Salin CSS' dan 'Salin HTML' untuk membawa kodenya. Kode biasa hanya memuat properti tata letak yang berbeda dari nilai bawaan. Jika 'Sertakan dekorasi pratinjau' dinyalakan, ukuran, jarak, dan border yang sama dengan panggung ikut disertakan, sehingga tampilannya bisa ditiru persis di tempat Anda menempelkannya.

Sumbu utama dan sumbu silang

Sumbu utama adalah arah item berjajar, sedangkan sumbu silang tegak lurus terhadapnya. justify-content menggerakkan item di sumbu utama, dan align-items, align-self, serta align-content menggerakkannya di sumbu silang. Pada layar dengan tulisan horizontal dari kiri ke kanan, keempat arah itu adalah sebagai berikut.

flex-directionSumbu utamaSumbu silangAwal sumbu utamaAwal sumbu silang
rowHorizontalVertikalKiriAtas
row-reverseHorizontalVertikalKananAtas
columnVertikalHorizontalAtasKiri
column-reverseVertikalHorizontalBawahKiri

flex-wrap: wrap-reverse menukar awal dan akhir sumbu silang. Karena itu, pada row dengan wrap-reverse, baris bertumpuk dari bawah ke atas, dan align-items: flex-start pun menempel di sisi bawah baris. Pada dokumen yang ditulis dari kanan ke kiri (direction: rtl) atau tulisan vertikal, sisi awal berubah lagi, jadi mengingat flex-start selalu sebagai 'kiri' mudah menyesatkan.

justify-content membagi ruang tersisa

justify-content menentukan di mana ruang yang masih tersisa di sumbu utama diletakkan, setelah ukuran item dan jarak dikurangkan semuanya. Jika tidak ada ruang tersisa, mengganti nilainya tidak menggerakkan apa pun. Tabel di bawah menunjukkan hasilnya untuk lebar dalam 400px dengan 3 item berukuran 80px tanpa gap, sehingga ruang tersisanya 160px.

NilaiRuang awalAntaritemRuang akhirTepi kiri ketiga item
flex-start001600 · 80 · 160
center8008080 · 160 · 240
flex-end16000160 · 240 · 320
space-between08000 · 160 · 320
space-around26,6753,3326,6726,67 · 160 · 293,33
space-evenly40404040 · 160 · 280

space-around memberi ruang yang sama di kiri dan kanan tiap item, sehingga jarak antaritem (53,33px) dua kali jarak di kedua ujung (26,67px). space-evenly membuat jarak di kedua ujung dan jarak antaritem sama semuanya. Ketiga nilai distribusi ini beralih ke perataan cadangan saat ruang tidak bisa dibagi. CSS Box Alignment menetapkan perataan cadangan space-between sebagai safe flex-start, dan perataan cadangan space-around serta space-evenly sebagai safe center. Karena itu, jika hanya ada satu item, space-between menaruhnya di awal, sedangkan dua nilai lainnya menaruhnya di tengah. Saat item meluap, safe menjaga sisi awal, sehingga ketiganya menempel di awal (dikonfirmasi di Chromium 151).

align-items, align-self, align-content

align-items menentukan posisi tiap item di sumbu silang dalam satu baris, dan align-self mengubah nilai itu untuk satu item saja. Nilai bawaan stretch merentangkan item yang ukuran sumbu silangnya auto hingga setinggi baris. Pada tata letak horizontal, item yang diberi height langsung tidak akan direntangkan. baseline menyejajarkan garis dasar baris pertama teks pada item yang ukuran hurufnya berbeda (contoh 'Garis dasar teks sejajar').

align-content memperlakukan beberapa baris sebagai satu kelompok dan menata seluruh baris di sumbu silang. Nilai bawaan normal berperilaku seperti stretch pada kontainer flex, yaitu merentangkan baris untuk mengisi ruang tersisa. Spesifikasi menyatakan properti ini tidak berpengaruh pada kontainer flex satu baris (single-line), sehingga pada flex-wrap: nowrap nilai apa pun tidak mengubah apa-apa. Sebaliknya, pada wrap properti ini berlaku walaupun baris sebenarnya hanya satu. Di Chromium 151, pada kontainer setinggi 100px dengan satu baris item 20px dan align-content: center, hasilnya tetap menempel di atas pada nowrap, dan turun 40px ke tengah pada wrap.

Singkatan flex: initial, auto, none, 1

flex adalah properti yang menuliskan flex-grow, flex-shrink, dan flex-basis sekaligus. Empat nilai yang diperkenalkan spesifikasi sebagai nilai yang sering dipakai ada di bawah, dan menulis satu angka saja seperti flex: 1 membuat flex-basis bernilai 0. Dua kolom di kanan adalah hasil dua item dengan lebar isi 100px dan 300px di kontainer berlebar dalam 600px dan 300px.

NilaiBentuk lengkapArtiDalam 600pxDalam 300px
initial0 1 autoUkuran sesuai isi, dan menyusut jika kurang (nilai bawaan)100 · 300 (sisa 200)75 · 225
auto1 1 autoMulai dari ukuran isi, lalu ruang tersisa ditambahkan sama rata200 · 40075 · 225
none0 0 autoTetap seukuran isi, tidak tumbuh dan tidak menyusut100 · 300 (sisa 200)100 · 300 (meluap 100)
11 1 0Mulai dari 0, lalu seluruh ruang dibagi sama rata300 · 300150 · 150

Beda flex: auto dan flex: 1 ada di titik awalnya. auto menambahkan sisa 200 separuh-separuh ke ukuran isi (100 dan 300), sehingga item yang panjang tetap lebih lebar. 1 mulai dari 0 dan membagi 600 separuh-separuh, sehingga kedua item sama lebar. Tabel dihitung dengan item tanpa padding dan border, serta lebar minimum isi yang cukup kecil. Jika ada kata panjang sehingga lebar minimumnya lebih besar daripada bagian yang diterima, item itu berhenti di lebar minimumnya, dan item lain membagi ulang sisa ruangnya.

flex-grow adalah rasio pembagian ruang tersisa

flex-grow bukan rasio ukuran akhir, melainkan rasio pembagian ruang tersisa. Di bawah ini hasil dua item di dalam lebar dalam 500px.

Ukuran dasargrowRuang tersisaUkuran akhirSisa untuk perataan
100 · 1001 · 2300200 · 3000
100 · 1000,25 · 0,25300175 · 175150
100 · 1001 · 0300400 · 1000
0 · 01 · 2500166,67 · 333,330

grow 1 : 2 hanya membagi sisa 300px menjadi 100 dan 200, sehingga lebar akhirnya 200 : 300. Agar lebar akhir tepat 1 : 2, seperti pada baris terakhir, ukuran dasar harus 0 (flex: 1 dan flex: 2) item tidak boleh memiliki padding maupun border, dan lebar minimum isi tidak boleh ikut menahan. Jika ada padding dan border 30px seperti item di panggung alat ini, perhitungan dimulai dari 30px itu, sehingga flex: 1 dan flex: 2 pun tidak tepat 1 : 2. Jika jumlah grow item yang tumbuh kurang dari 1, spesifikasi hanya membagikan ruang tersisa dikalikan jumlah itu. Karena 0,25 + 0,25 = 0,5, hanya setengah dari 300px, yaitu 150px, yang dibagikan, dan 150px sisanya ditata oleh justify-content.

flex-shrink menyusutkan sebanding dengan ukuran dasar

Saat ruang kurang, besar penyusutan dibagi menurut rasio nilai shrink dikalikan ukuran dasar bagian dalam. Ukuran dasar bagian dalam adalah ukuran dasar dikurangi padding dan border. Karena itu item yang besar menyusut lebih banyak, dan walaupun nilai shrink sama, panjang penyusutannya berbeda. Di bawah ini kasus dengan lebar dalam 300px yang kurang 100px.

Ukuran dasarshrinkPadding + border dalamUkuran akhir
200 · 2001 · 10150 · 150
100 · 3001 · 1075 · 225
200 · 2001 · 30175 · 125
100 · 3001 · 140 per item81,25 · 218,75

Baris terakhir adalah kasus box-sizing: border-box dengan padding dan border kiri-kanan yang totalnya 40px. Rasio penyusutan ditentukan oleh ukuran dasar bagian dalam 60 : 260, sehingga hasilnya berbeda dari kasus tanpa padding (75 · 225). Kartu Rincian ukuran di generator ini menuliskan hitungan itu apa adanya, misalnya 'dari 100 yang kurang, (1 × 60) / 320'. Aturan yang sama dengan grow berlaku jika total shrink kurang dari 1. Pada lebar dalam 300px, dua item 200px dengan shrink 0,2 masing-masing berjumlah 0,4, sehingga hanya 40% dari 100px yang kurang, yaitu 40px, yang dikurangkan: keduanya menjadi 180 · 180 dan 60px sisanya meluap.

Item yang tidak mau menyusut: min-width: auto

Walaupun flex-shrink bernilai 1, item tidak menjadi lebih kecil daripada lebar minimum isinya. Pada item flex yang bukan kontainer gulir, nilai bawaan min-width (atau min-height pada arah vertikal), yaitu auto, dihitung sebagai 'ukuran minimum berdasarkan isi' (spesifikasi §4.5). Karena itu alamat panjang tanpa tempat untuk pindah baris, teks dengan white-space: nowrap, dan gambar yang ukuran aslinya besar menembus kontainer dan meluap. Pada contoh 'Alamat panjang yang tak menyusut', arsiran merah di sisi kanan panggung adalah panjang yang meluap.

  • Jika item itu diberi min-width: 0, ia bisa menyusut lebih kecil daripada isinya. Namun teks tidak otomatis pindah baris, jadi teks yang meluap perlu ditangani terpisah dengan overflow-wrap: anywhere atau pemotongan berelipsis.
  • Jika overflow diberi nilai selain visible, seperti hidden atau auto, item itu menjadi kontainer gulir, dan ukuran minimum otomatisnya menjadi 0.
  • Jika daftar yang bisa digulir ditaruh di dalam arah vertikal tetapi daftarnya hanya memanjang tanpa bisa digulir, item itu sering memerlukan min-height: 0.
  • Bahasa Indonesia hanya memindahkan baris di spasi atau tanda hubung, sehingga kata panjang atau URL memperbesar lebar minimum item. Hal ini terlihat pada contoh alamat di atas. Untuk memecah kata yang terlalu panjang, gunakan overflow-wrap: anywhere, atau pasang atribut lang yang benar dan hyphens: auto agar kata dipenggal dengan tanda hubung.

Mendorong satu item dengan margin auto

Pada tata letak horizontal, jika item diberi margin-left: auto, margin itu mengambil seluruh ruang tersisa dan item terdorong ke sisi akhir. Spesifikasi menetapkan bahwa ruang tersisa yang positif lebih dulu dibagikan ke margin auto, sebelum perataan oleh justify-content dan align-self (§8.1). Karena itu, pada baris yang punya margin auto, mengubah justify-content tidak menggerakkan apa pun. Contoh 'Bilah navigasi' hanya memberi margin auto di depan item Masuk, sehingga menu lain berada di kiri dan hanya Masuk di ujung kanan. Jika auto diberikan di kedua sisi, item itu berada di tengah ruang tersisa. 'Margin auto sumbu utama' pada generator ini menuliskan ke kode margin-left, right, top, atau bottom yang sesuai dengan arah.

Saat gap dan ruang tersisa ada bersamaan

Kontainer flex menentukan ruang dengan urutan ini. Pertama, gap antaritem dikurangkan dari ukuran dalam, lalu sisanya dibagi dengan grow atau shrink. Jika masih ada ruang tersisa, margin auto yang menempatkannya, baru setelah itu justify-content. Baris pertama Rincian ukuran, 'Ukuran dalam − celah − total ukuran dasar = ruang tersisa', adalah urutan itu sendiri. Pada arah row, column-gap masuk di antara item pada baris yang sama dan row-gap di antara baris, sedangkan pada arah column keduanya berkebalikan.

gap hanya muncul di antara item dan tidak muncul antara border kontainer dan item pertama. Jarak di tepi diberikan dengan padding pada induk. Jika space-between dipakai bersama gap, jarak yang terlihat menjadi lebih lebar daripada gap, dan pada baris yang hanya berisi satu item tidak ada gap.

order dan reverse hanya mengubah urutan tampilan

order menaruh item bernilai kecil lebih dulu, dan item dengan nilai sama mengikuti urutan HTML. row-reverse dan column-reverse juga hanya membalik urutan di layar. Perpindahan dengan tombol Tab dan pembaca layar mengikuti urutan HTML, sehingga spesifikasi meminta order dipakai hanya untuk mengubah urutan visual, bukan urutan logis (§5.4), dan melarang order atau *-reverse dipakai sebagai pengganti urutan sumber yang benar (§5). Di panggung generator ini pun, tombol panah berpindah antaritem menurut urutan HTML (urutan nomor), bukan posisi di layar.

Dukungan peramban

FiturChromeFirefoxSafari
flex dan flex-basis (tanpa awalan)29229
order29209
gap pada tata letak flex846314.1
flex-basis: content946115.4
flex-basis: min-content dan max-content946616

Angka dalam tabel adalah versi pertama yang mendukung, sebagaimana tertulis di data kompatibilitas peramban MDN. Jika Anda perlu mendukung peramban lama yang belum mendukung gap pada tata letak flex, gantilah jarak dengan margin pada item.

Kesalahan yang sering terjadi

  • Perataan tengah vertikal tidak berhasil. Ini terjadi ketika tinggi induk sama dengan tinggi isi, sehingga tidak ada ruang tersisa di sumbu silang. Beri induk height atau min-height.
  • justify-content tidak bergerak pada column. Sumbu utama arah vertikal adalah tinggi, sehingga ruang tersisa baru ada jika tinggi induk sudah ditentukan.
  • Sudah memberi flex: 1 tetapi lebarnya berbeda. Ada item yang lebar minimum isinya, karena kata panjang atau gambar, lebih besar daripada bagian yang ia terima. Pertimbangkan min-width: 0 pada item itu.
  • Hanya kartu di baris terakhir yang melebar. Penyebabnya, ruang tersisa dibagi terpisah untuk tiap baris. Untuk menyamakan lebar kolom, gunakan Grid atau beri grow 0.
  • Ingin menata sampai elemen cucu. display: flex hanya menjadikan anak langsung sebagai item flex. Untuk menata elemen yang lebih dalam, beri display: flex juga pada induknya.
  • Dengan center, bagian awal yang meluap terpotong. Jika item meluap, center meluap ke kedua sisi, dan sisi awal tidak bisa dilihat bahkan dengan menggulir. Di Chromium 151, isi sepanjang 300px di kontainer 200px membuat item pertama keluar 50px ke depan, dan dengan justify-content: safe center item itu menempel di awal.
  • Sudah mengubah urutan dengan order, tetapi urutan Tab tetap. Itu normal. Jika urutan baca juga perlu berubah, perbaiki urutan HTML.

Batasan dan hal yang perlu diperhatikan

  • Panggung hanya memperlihatkan arah tulisan horizontal dari kiri ke kanan. Pada dokumen rtl atau tulisan vertikal, sisi awal berbeda.
  • Di dalam item hanya bisa diisi satu rangkaian teks. Pada layar sungguhan yang berisi gambar, anak berlebar tetap, atau flex di dalamnya, lebar minimumnya akan berbeda.
  • Rincian ukuran menghitung ulang spesifikasi §9.7 dengan ukuran isi (max-content dan min-content) yang diukur di peramban saat ini. Jika ada baris yang selisihnya lebih dari 1px, baris itu menampilkan nilai peramban dan memberi tahu secara terpisah.
  • Jika flex-basis lebih kecil daripada padding + border dalam (misalnya 0 pada border-box), catatan spesifikasi menjelaskan ukuran dasar luarnya sebagai 0. Chromium 151 mulai menghitung dari padding + border dalam, dan alat ini memakai nilai yang sesuai dengan hasil itu.
  • Ukuran maksimum (max-width dan max-height) serta margin auto sumbu silang pada align-self tidak bisa diatur.
  • Kode yang disalin tidak membuat media query. Aturan yang mengubah arah menurut lebar layar harus Anda tulis sendiri.
  • Salin tautan menyertakan teks item di dalam alamat. Jangan masukkan teks yang tidak boleh dilihat orang lain.

Tanggal acuan W3C CSS Flexible Box Layout Module Level 1 (Candidate Recommendation Draft 2025-10-14), CSS Box Alignment Module Level 3 (Working Draft 2026-10-08), dan data kompatibilitas peramban MDN diperiksa langsung pada sumber aslinya tanggal 2026-10-21. Angka dalam tabel dihitung dengan inti perhitungan alat ini, sedangkan perataan cadangan, align-content, dan batas bawah ukuran dasar adalah hasil pengukuran di Chromium 151.

Sumber

  • 01W3C: CSS Flexible Box Layout Module Level 1Candidate Recommendation Draft 2025-10-14. §4.5 ukuran minimum otomatis, §5 dan §5.4 urutan dan aksesibilitas, §7.1.1 nilai bawaan flex (initial, auto, none, angka), §8.1 margin auto, §8.4 align-content, §9.3 pemecahan baris, §9.7 penyelesaian panjang fleksibel (shrink × ukuran dasar dalam, jumlah grow < 1)
  • 02W3C: CSS Box Alignment Module Level 3Working Draft 2026-10-08. §4.3 nilai distribusi dan perataan cadangan (space-between = safe flex-start, space-around dan space-evenly = safe center), §4.4 safe dan unsafe, §5.1.3 perilaku normal pada kontainer flex
  • 03MDN: Basic concepts of flexboxSumbu utama dan sumbu silang, garis awal dan garis akhir, perilaku dasar item flex
  • 04MDN: flexTabel kompatibilitas peramban: tanpa awalan, Chrome 29, Firefox 22, Safari 9
  • 05MDN: flex-basisTabel kompatibilitas peramban: content di Chrome 94, Firefox 61, Safari 15.4; min-content dan max-content di Chrome 94, Firefox 66, Safari 16
  • 06MDN: gapTabel kompatibilitas peramban: pada tata letak flex di Chrome 84, Firefox 63, Safari 14.1
  • 07MDN: orderPeringatan aksesibilitas karena urutan di layar berbeda dari urutan baca, tabel kompatibilitas peramban Chrome 29, Firefox 20, Safari 9

Pertanyaan yang sering diajukan

Bagaimana cara membuat perataan tengah horizontal dan vertikal dengan Flexbox?

Beri induk display: flex, justify-content: center, dan align-items: center sekaligus. Agar berada di tengah secara vertikal, tinggi induk harus lebih besar daripada isinya sehingga ada ruang tersisa di sumbu silang, jadi periksa juga height atau min-height. Klik contoh 'Tengah horizontal dan vertikal' untuk langsung melihatnya.

Apa beda justify-content dan align-items?

justify-content membagi ruang tersisa di sumbu utama, yaitu arah item berjajar, sedangkan align-items menentukan posisi tiap item di sumbu silang yang tegak lurus terhadapnya. Pada row keduanya berturut-turut horizontal dan vertikal, pada column vertikal dan horizontal. Ikon perataan di generator ini ikut berputar saat arah diubah, sehingga arah geraknya terlihat.

Apa beda flex: 1 dan flex: auto?

flex: 1 berarti 1 1 0, sehingga mulai dari 0 dan membagi seluruh ruang sama rata. flex: auto berarti 1 1 auto, sehingga mulai dari ukuran isi dan hanya menambahkan ruang tersisa sama rata. Pada lebar dalam 600px dengan item berisi 100px dan 300px, flex: 1 menghasilkan 300 dan 300, sedangkan flex: auto menghasilkan 200 dan 400.

Apakah flex-grow: 2 berarti dua kali lebih lebar?

Tidak. grow adalah rasio pembagian ruang tersisa. Jika dua item berukuran dasar 100px di lebar dalam 500px diberi grow 1 dan 2, sisa 300px dibagi menjadi 100 dan 200, sehingga lebar akhirnya 200 dan 300. Agar tepat dua kali lipat, jadikan ukuran dasarnya 0 tanpa padding maupun border.

Mengapa teks panjang tetap meluap padahal flex-shrink bernilai 1?

Karena nilai bawaan min-width pada item flex, yaitu auto, dihitung sebagai lebar minimum isi dan item tidak menyusut lebih kecil daripada itu. Beri item min-width: 0 atau ubah overflow menjadi selain visible agar bisa menyusut, dan tangani teks yang meluap secara terpisah, misalnya dengan overflow-wrap: anywhere.

Mengapa align-content tidak mengubah apa-apa?

Jika flex-wrap adalah nowrap, kontainer hanya satu baris sehingga align-content tidak berpengaruh. Dengan wrap atau wrap-reverse, properti ini berlaku walaupun baris sebenarnya hanya satu, tetapi gerakannya baru terlihat jika ada ruang tersisa di sumbu silang.

Sebaiknya memakai Flexbox atau Grid?

Jika item berjajar dalam satu arah dan ruang dibagi di dalam baris itu, seperti menu atau kelompok tombol, Flexbox cocok. Jika batas baris dan kolom harus sejajar sekaligus, Grid lebih cocok. Flexbox membagi ruang terpisah untuk tiap baris walaupun dibungkus menjadi beberapa baris, sehingga kartu di baris terakhir bisa menjadi lebih lebar.

Apakah mengubah order juga mengubah urutan Tab?

Tidak. order serta row-reverse dan column-reverse hanya mengubah urutan gambar di layar, sedangkan perpindahan keyboard dan urutan baca pembaca layar mengikuti urutan HTML. Spesifikasi juga meminta order dipakai hanya untuk urutan visual, jadi jika urutan baca penting, perbaiki urutan HTML.