Main axis, cross axis, justify/items, flex-1 va real UI naqshlari (Navbar, Pricing Card) — misol, test va amaliy topshiriqlar bilan.
Flexbox ikkita o'q asosida ishlaydi: main axis va cross axis. flex-rowda main axis gorizontal, flex-colda vertikal.
index.htmlHTML<div class="flex justify-between items-center p-4 bg-white shadow"><span class="font-bold text-xl">Logo</span><div class="flex gap-6"><a href="#">Bosh sahifa</a></div></div>
🧠 justify-* — MAIN axis bo'yicha, items-* — CROSS axis bo'yicha hizalash.
index.htmlHTML<div class="flex flex-col p-6 border rounded-xl w-64"><h3 class="text-xl font-bold">Pro Plan</h3><ul class="flex-1 space-y-2 text-gray-600"><li>10 loyiha</li></ul><button class="bg-blue-500 text-white py-2 rounded-lg mt-4">Tanlash</button></div>
⚠️ Common Mistake
flex-1ni barcha elementlarga qo'yish — natijada barchasi teng kenglikda bo'ladi, faqat kerakli elementga berish kerak.
Task: flex justify-between items-center bilan oddiy header yarating (logo + 1 ta link).
Task: Yuqoridagi Pricing Card'ni to'liq qayta yasang, flex-1 yordamida tugmani pastga "yopishtiring".
Task: Sidebar + Content layout yarating: flex konteyner, sidebar w-64 flex-none, content flex-1.
index.htmlHTML<div class="flex flex-col justify-center h-64"><div>A</div><div>B</div></div>
🧠 Think first! A va B qayerda joylashadi?
<details> <summary>Answer</summary> A va B vertikal markazda joylashadi (chunki `flex-col`da `justify-center` vertikal ishlaydi), lekin gorizontal bo'yicha o'zgarish yo'q (chunki `items-*` berilmagan, default stretch). </details>index.htmlHTML<div class="flex"><div class="flex-1">A</div><div class="flex-1">B</div><div class="flex-1">C</div></div>
Your Task: Agar shu uch qutidan faqat birortasi kattaroq bo'lishi kerak bo'lsa (masalan B ikki barobar keng), qanday tuzatasiz?
<details> <summary>Solution</summary> `B` elementiga `flex-[2]` yoki `flex-2` (agar config'da mavjud bo'lsa) bering — bu uning nisbiy "og'irligini" oshiradi, A va C esa `flex-1` da qoladi, natijada B ikki barobar ko'proq joy oladi. </details>Flexbox ikkita o'qqa ega: main axis (justify-*) va cross axis (items-*). flex-colda bu ikkalasi teskari bo'ladi. flex-1 — moslashuvchan layout qurishning kaliti.
justify-between items-center — eng ko'p ishlatiladigan navbar formulasiflex-1 sidebar+content va pricing card kabi moslashuvchan layoutlar uchunflex-colda axis'lar teskari bo'lishini yodda tutingcode.textTEXTKonteyner: flex, flex-row, flex-col, flex-wrapMain axis: justify-start/center/between/around/evenlyCross axis: items-start/center/end/stretchItem: flex-1, grow, shrink, order-*
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 3 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: