CSS Flexbox tam rehberi: 2026'da esnek layout ustaligi
CSS Flexbox'i sifirdan ogren. display flex, direction, wrap, justify, align, grow, shrink, basis ve merkezleme, navbar, kart grid'i ve holy grail layout gibi yaygin kaliplari kapsar.
CSS Flexbox nedir ve neden iyi ogrenmelisin
CSS Flexbox, bir kapsayici icindeki ogeleri tek bir eksen boyunca hizalamak ve boslugu dagitmak icin tasarlanmis bir layout modelidir. Eskiden float, tablo ya da absolute positioning ile zorla cozulmeye calisilan pek cok sorunu daha temiz ve tutarli sekilde ele alir.
Flexbox; dikey ortalama, esit alan dagitimi, degisken boyutlu iceriklerin hizalanmasi ve responsive component tasarimi gibi isleri ciddi sekilde kolaylastirir. Bu nedenle modern frontend gelistirmede temel araclarindan biridir.
- Kolay merkezleme hem yatay hem dikey eksende
- Esnek boyut davranisi buyume, kuculme ve satir kirilmasi ile
- Daha anlasilir hizalama mantigi eksen bazli dusunce sayesinde
Okurken denemek istersen Flexbox playground aracimizi acabilirsin.
Flex container: display flex ve ana eksen
Her sey parent elemana display: flex vermekle baslar. Bunu yaptiginda dogrudan cocuklar otomatik olarak flex item olur.
Varsayilan durumda ogeler yatay olarak dizilir, alt satira gecmez, ana eksenin basina hizalanir ve capraz eksende uzar.
| Deger | Ana eksen | Yon |
|---|---|---|
row | Yatay | Soldan saga |
row-reverse | Yatay | Sagdan sola |
column | Dikey | Yukaridan asagi |
column-reverse | Dikey | Asagidan yukari |
flex-wrap satir kirilmasini kontrol eder. flex-flow ise direction ile wrap'i tek satirda birlestirir.
Hizalama ozellikleri: justify-content ve align-items
justify-content ana eksen boyunca, align-items ise capraz eksen boyunca hizalar.
| Ozellik | Gorev |
|---|---|
justify-content: center | Ana eksende ortalar |
space-between | Ogeler arasindaki boslugu dagitir |
align-items: center | Capraz eksende ortalar |
align-items: stretch | Ogeleri capraz eksende uzatir |
Birden fazla satir varsa align-content devreye girer. Ogeler arasinda temiz bosluk birakmak icin ise gap en kullanisli secenektir.
Flex item ozellikleri: grow, shrink ve basis
Bu ozellikler her bir ogenin alani nasil kullanacagini belirler.
- flex-grow: bos alan kalinca ne kadar buyuyecegi
- flex-shrink: alan yetmeyince ne kadar kuculecegi
- flex-basis: dagitimdan onceki temel boyut
flex bu uc degerin kisaltmasidir. flex: 1 esnek oge olusturur, flex: none boyutu sabitler, flex: 0 0 250px ise 250px'lik sabit bir oge tanimlar.
align-self tek bir ogenin hizasini ayri ayarlamaya yarar, order ise HTML'i degistirmeden gorsel sirayi degistirir.
Yaygin kaliplar: merkezleme, navbar ve sticky footer
Flexbox, gundelik arayuz kaliplarinda cok gucludur.
- Tam merkezleme:
display: flex; justify-content: center; align-items: center; - Navbar:
justify-content: space-betweenlogo ile menuyu ayirir - Sticky footer: kolon wrapper +
min-height: 100vh+ ana icerikteflex: 1 - Son ogeyi saga itmek:
margin-left: auto - Sidebar + content: sabit sidebar ve esnek icerik alani
Bu kaliplari Flexbox playground uzerinde deneyebilirsin.
Responsive kart grid'i ve holy grail layout
Kart listelerinde yaygin yaklasim, kapsayiciya display: flex; flex-wrap: wrap; gap: 24px;, kartlara ise flex: 1 1 300px; vermektir. Boylece kartlar minimum genisligi korurken ekrana gore yeniden yerlesir.
Holy grail layout, header, footer, yan kolonlar ve ana icerikten olusan klasik sayfa yapisidir. Dis wrapper dikey flex olur, orta alan ise yatay bir flex container haline gelir.
- Dis wrapper:
display: flex; flex-direction: column; min-height: 100vh; - Orta alan:
display: flex; flex: 1; - Sidebar:
flex: 0 0 200px; - Ana icerik:
flex: 1;
Flexbox ve CSS Grid: hangisini ne zaman kullanmali
Flexbox tek boyutlu layout'lar icin daha uygundur. CSS Grid ise satir ve sutunlari ayni anda kontrol etmek gereken iki boyutlu duzenlerde daha gucludur.
- Flexbox navbar, card, form ve component ici hizalamada cok iyidir
- Grid sayfa iskeleti ve karmasik grid yapilarinda daha gucludur
| Konu | Flexbox | Grid |
|---|---|---|
| Boyut | 1D | 2D |
| Gucu | Hizalama ve dagitim | Yapi kurma |
| Tipik kullanim | Component icleri | Sayfa layout'u |
Gercek projelerde en iyi sonuc genelde ikisini birlikte kullanmaktan gelir. Bunu Flexbox playground ve CSS Grid generator ile karsilastirabilirsin.
Yaygin hatalar ve gelismis Flexbox ipuclari
Flexbox kullanirken su hatalar sik gorulur:
- flex-shrink'in varsayilan olarak 1 oldugunu unutmak
- flex-basis yerine sadece width kullanmak
- Metin kisaltmasi icin min-width: 0 vermemek
- Karmasik 2D gridleri sadece Flexbox ile kurmaya calismak
Faydali ipuclari:
- margin-left: auto bir ogeyi karsi tarafa iter
- flex: 1 1 0% genelde daha dengeli alan dagitimi saglar
- Ici ice flex container'lar karmasik arayuzlerde cok ise yarar
- order sadece gorsel sirayi degistirir, erisilebilirlik okuma sirasi ayni kalir
Daha hizli pratik yapmak icin interactive Flexbox playground aracimizi kullanabilirsin.
Bu aracı deneyin:
Aracı aç→Sıkça sorulan sorular
justify-content ile align-items arasindaki fark nedir?
justify-content ana eksen boyunca hizalar, align-items ise capraz eksende hizalar. Varsayilan row duzeninde bunu genelde yatay ve dikey farki olarak dusunebilirsin.
flex: 1 tam olarak ne yapar?
flex: 1 genelde flex-grow: 1, flex-shrink: 1 ve flex-basis: 0% anlamina gelir. Yani oge bos alanla birlikte buyur, gerekirse kuculur ve kullanilabilir alani diger esnek ogelerle paylasir.
Bir div'i Flexbox ile hem yatay hem dikey nasil ortalarim?
Parent elemana display: flex; justify-content: center; align-items: center; ver. Ayrica container'in yuksekligi belli olmali; ornegin min-height: 100vh.
Flexbox mi Grid mi: hangisini once ogrenmeliyim?
Flexbox. Ogrenmesi daha kolaydir ve component bazli layout sorunlarinin buyuk kismini cozer. Sonrasinda Grid'i anlamak da daha kolay olur.
Neden flex item'larim alt satira gecmiyor?
Cunku flex-wrap varsayilan olarak nowrap degerine sahiptir. Satir kirilmasi istiyorsan container'a flex-wrap: wrap; eklemelisin.
Ayni projede hem Flexbox hem CSS Grid kullanabilir miyim?
Evet. Hatta en iyi yaklasim genelde budur. Grid sayfa iskeletinde, Flexbox ise component iclerindeki hizalamada cok iyi calisir.