Series: CSS Basics Lesson 19

CSS Asoslari - 19-dars

Grid va Flex farqi, Grid nima va nega Flex emas, Grid container tushunchasini o'rganing.

19-dars

O'zing nomla

1. Grid nima va nega Flex emas?

CSSda Grid — bu two dimensional (2D) layout tizimi.

👉 2 o'lcham degani:

  • gorizontal (ustunlar)
  • vertikal (qatorlar)

Grid'da sen:

  • avval sahifa strukturasini chizasan
  • keyin ichiga element joylaysan

Ya'ni:

Grid — layout'ni oldindan rejalash

Flex aslida nima?

Flexbox — bu one dimensional (1D) layout.

U:

  • faqat bitta yo'nalishda ishlaydi
  • yoki row
  • yoki column

Flex:

  • elementlar oqimi bilan ishlaydi
  • kontentga moslashadi

Flex — ichki joylashuv uchun

Asosiy farq (muhim!)

Savol Grid Flex
O'lcham 2D (qator + ustun) 1D
Fikrlash Layout markazda Kontent markazda
Avval nima? Struktura Element
Sahifa darajasi
Component ichida ⚠️ kam

Nega Grid Flex o'rnini bosa olmaydi?

Chunki ular raqib emas.

❌ Noto'g'ri fikr:

"Grid chiqdi, endi Flex kerak emas"

✅ To'g'ri fikr:

"Grid va Flex birga ishlaydi"

Misol:

  • Sahifa: Grid
  • Card ichidagi buttonlar: Flex

Qachon Grid tanlanadi?

Grid tanla, agar:

  • layout oldindan ma'lum bo'lsa
  • qator + ustun birga boshqarilsa
  • responsive strukturaviy bo'lsa

Qachon Flex tanlanadi?

Flex tanla, agar:

  • elementlar oqimi muhim bo'lsa
  • kontent dinamik bo'lsa
  • ichki joylashuv bo'lsa

2. Grid container tushunchasi

Grid o'zi-o'zidan mavjud emas. U faqat bitta shart bilan ishga tushadi:

.container {
  display: grid;
}

📌 Shu joydan:

  • .container → grid container
  • uning bevosita bolalari → grid item

❗ Ichkaridagi ichkarilar (nevara elementlar) Grid'ga kirmaydi.

Grid container nima?

Grid container — bu:

  • layout boshqaruvchi element
  • qatorlar va ustunlar faqat shu element ichida mavjud

Ya'ni:

Grid — tashqi dunyoni ko'rmaydi, u faqat container ichini boshqaradi.

Grid item kim?

<div class="container">
  <header></header>   <!-- grid item -->
  <aside></aside>     <!-- grid item -->
  <main></main>       <!-- grid item -->
</div>

📌 Bu yerda:

  • header, aside, main → grid item
  • ularning ichidagi elementlar → oddiy DOM

Grid container nimani boshqaradi?

Grid container faqat 3 narsani boshqaradi:

1️⃣ Qatorlar (rows) 2️⃣ Ustunlar (columns) 3️⃣ Ularning orasidagi bo'shliq (gap)

Bularsiz Grid yo'q.

Grid container = layout chizmasi

Grid'da sen:

  • elementlarni joylamaysan
  • maydon chizasan

Bu juda muhim tafakkur.

Misol:

.container {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-rows: auto 1fr auto;
}

👉 Bu kod:

  • "necha element bor?" deb so'ramaydi
  • strukturani e'lon qiladi

Eng ko'p qilinadigan xato ❌

.container {
  display: grid;
}

va keyin:

"Nega hech narsa o'zgarmadi?"

Sababi:

  • qator va ustun yo'q