Series: CSS Basics Lesson 15

CSS Asoslari - 15-dars

Flexbox tushunchasini o'rganing. Flexbox nima, flex container va flex item nima, ular qanday ishlaydi va qachon ishlatilishini tushuning.

15-dars

O'zing nomla

1. Flexbox nima?

Flexbox (Flexible Box Layout) — bu CSS'dagi layout modeli.

Oddiyroq aytganda:

Flexbox — bir konteyner ichidagi elementlarni tartibli, moslashuvchan va boshqariladigan qilib joylashtirish usuli.

Bu:

bitta qator YOKI bitta ustun bo'ylab ishlaydi.

Shuning uchun: one-dimensional (1D) layout deyiladi.

Flexbox nimani o'zgartirdi?

Flex'dan oldin CSS shunaqa edi:

Har bir element o'zi bilan o'zi

"Yonimdagiga qarab moslash" degan tushuncha yo'q

Brauzer: "mana qo'ydim, endi o'zing bil"

Flexbox bilan esa:

Elementlar bir jamoa bo'lib ishlaydi

Container aytadi:

qaysi yo'nalishda joylashish

bo'sh joyni qanday bo'lish

kim o'ssin, kim qisqarsin

Elementlar esa shu qoidalarga bo'ysunadi.

Texnik ta'rif (aniq)

Flexbox:

display: flex qo'yilgan container

va uning ichidagi direct child elementlar

orasidagi joylashuv algoritmi.

Muhim: ❗ Flex faqat bevosita ichidagi elementlarga ta'sir qiladi ❗ Ichma-ich (nested) bo'lsa — har biri alohida flex bo'ladi

2. Flex container va flex item nima?

Flex'da KIM boshqaradi, KIM bo'ysunadi?

Flexbox'da rollar aniq:

Flex container → boshqaruvchi

Flex item → bo'ysunuvchi

Agar shu mantiqni tushunmasang: ❌ justify-content ishlamaydi ❌ flex-grow tushunarsiz bo'ladi ❌ "nega bunday bo'ldi?" degan savol ko'payadi

1️⃣ Flex container nima?

Flex container — bu:

.parent {
  display: flex;
}

display: flex berilgan element.

👉 Hamma flex qoidalari SHU YERDA boshlanadi.

Container:

yo'nalishni belgilaydi

elementlarni qatorga yoki ustunga qo'yadi

bo'sh joyni qanday taqsimlashni hal qiladi

Muhim:

Flex o'zi uchun emas, ichidagi bolalari uchun ishlaydi.

2️⃣ Flex item nima?

Flex item — bu:

👉 Flex container'ning bevosita ichidagi elementlari.

<div class="parent">
  <div>A</div>   <!-- flex item -->
  <div>B</div>   <!-- flex item -->
</div>

❗ Faqat direct child — flex item bo'ladi ❌ Ichidagi ichidagi element — yo'q

<div class="parent">
  <div>
    <span>Bu flex item EMAS</span>
  </div>
</div>

Bu yerda:

div → flex item

span → oddiy element

Container nimalarni boshqaradi?

Misol uchun:

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

Container aytyapti:

elementlar yonma-yon bo'lsin

bo'sh joy teng taqsimlansin

vertikal markazda tursin

Item'lar:

"xo'p" deb turadi 😄

Item nimalarni boshqaradi?

Flex item:

o'sadimi (flex-grow)

qisqaradimi (flex-shrink)

boshlang'ich o'lchami (flex-basis)

o'zini alohida joylashtirish (align-self)

Ya'ni:

Container — jamoa qoidasi Item — individual xulq