CSS · Bab 6
Flexbox
Menyusun elemen dalam satu baris atau kolom dengan display flex, mengatur arah, perataan pada sumbu utama dan sumbu silang, jarak gap, pembungkusan flex-wrap, serta pembagian ruang dengan flex 1.
Flexbox adalah cara modern menyusun elemen dalam satu arah: berjajar dalam baris, atau bertumpuk dalam kolom. Navigasi, deretan tombol, dan kartu yang tingginya sama adalah pekerjaan sehari-hari flexbox.
6.1 Wadah Flex dan Item Flex
display: flex dipasang pada induk. Induk itu menjadi wadah flex, dan anak langsungnya menjadi item flex. Cucu tidak ikut terpengaruh.
Flexbox bekerja dengan dua sumbu:
- sumbu utama: arah item disusun. Bawaannya mendatar, dari kiri ke kanan.
- sumbu silang: tegak lurus terhadap sumbu utama.
🧪 Coba ubah: hapus display: flex, lalu jalankan. Ketiga item kembali bertumpuk sebagai blok.
Belum ada output.
6.2 flex-direction
flex-direction menentukan arah sumbu utama:
row(bawaan): mendatar.column: tegak, dari atas ke bawah.row-reversedancolumn-reverse: arah dibalik.
Arah terbalik hanya mengubah tampilan. Urutan baca pembaca layar dan urutan tombol Tab tetap mengikuti urutan HTML, jadi jangan memakainya untuk mengubah urutan isi yang bermakna.
6.3 justify-content dan align-items
justify-contentmeratakan item di sumbu utama:flex-start,center,flex-end,space-between(sisa ruang di antara item),space-around, danspace-evenly.align-itemsmeratakan item di sumbu silang:stretch(bawaan, item merentang setinggi wadah),flex-start,center,flex-end, danbaseline.
Saat flex-direction: column, sumbunya bertukar: justify-content mengatur arah tegak dan align-items mengatur arah mendatar.
🧪 Coba ubah: ganti space-between pada .navigasi menjadi flex-end, lalu center.
Belum ada output.
6.4 gap dan flex-wrap
gapmemberi jarak di antara item, tidak di tepi luar. Ini lebih rapi daripada memberi margin pada setiap item.- Secara bawaan (
flex-wrap: nowrap), semua item dipaksa dalam satu baris: item menyempit, atau meluber bila tidak bisa menyempit lagi.flex-wrap: wrapmemindahkan item yang tidak muat ke baris berikutnya.
🧪 Coba ubah: hapus flex-wrap: wrap dan lihat label-label itu berdesakan dalam satu baris.
Belum ada output.
6.5 flex: 1 dan Pembagian Ruang
flex: 1 membuat item tumbuh mengisi sisa ruang. Bentuk ini singkatan dari flex: 1 1 0% (flex-grow 1, flex-shrink 1, flex-basis 0%). Bila semua item flex: 1, lebarnya sama. Item flex: 2 mendapat dua kali bagian item flex: 1. Pola yang sering dipakai: kolom samping berlebar tetap, isi utama flex: 1.
Belum ada output.
6.6 Ringkasan
display: flexpada induk menjadikan anak langsungnya item flex.flex-directionmenentukan sumbu utama. Sumbu silang tegak lurus terhadapnya.justify-contentmeratakan di sumbu utama,align-itemsdi sumbu silang.gapmemberi jarak antaritem, danflex-wrap: wrapmemindahkan item ke baris baru.flex: 1membagi sisa ruang.