Series: CSS Basics Lesson 9

CSS Asoslari - 9-dars

Overflow va Block Formatting Context (BFC) tushunchalarini o'rganing. Overflow qanday ishlashini, BFC nima ekanligini va qachon yaratilishini tushuning.

9-dars

O'zing nomla

Bu darsda overflow va Block Formatting Context (BFC) tushunchalarini o'rganamiz.

1. overflow nimani o'zgartiradi?

🧠 overflow nima o'zi?

overflow β€” bu elementga shuni aytadi:

"Ichidagi narsa sig'may qolsa, tashqariga chiqaraymi, kesaymi yoki scroll beraymi?"

πŸ”§ Asosiy qiymatlar

1️⃣ overflow: visible (default)

.box {
  overflow: visible;
}

πŸ‘‰ Natija:

  • content tashqariga chiqib ketadi
  • element chegarasi to'siq bo'lmaydi

🧠 Shuning uchun:

"Nega rasm div'dan chiqib ketdi?" β€” chunki visible.

2️⃣ overflow: hidden

.box {
  overflow: hidden;
}

πŸ‘‰ Natija:

  • tashqariga chiqqan qism kesiladi
  • ko'rinmaydi
  • scroll yo'q

🧠 Ko'p ishlatiladi, lekin ehtiyot bo'l:

  • content yo'qolishi mumkin

3️⃣ overflow: scroll

.box {
  overflow: scroll;
}

πŸ‘‰ Natija:

  • har doim scroll bor
  • content sig'sa ham

❌ UX jihatdan yomon

4️⃣ overflow: auto (eng sog'lom)

.box {
  overflow: auto;
}

πŸ‘‰ Natija:

  • kerak bo'lsa β†’ scroll chiqadi
  • sig'sa β†’ yo'q

βœ… Amaliy loyihalarda eng to'g'ri tanlov

πŸ”„ overflow-x va overflow-y

.box {
  overflow-x: hidden;
  overflow-y: auto;
}

πŸ‘‰ Foyda:

  • gorizontalni yop
  • vertikalni scroll qil

🧠 Ayniqsa mobile'da muhim.

❌ Eng ko'p uchraydigan xatolar

❌ overflow: hidden ni "hamma joyga" qo'yish β†’ content yo'qoladi

❌ Scroll chiqmasin deb hidden qilish β†’ accessibility buziladi

❌ Gorizontal scroll sababini tekshirmasdan yashirish β†’ asl muammo qoladi

🧠 Qachon qaysi biri?

  • Chiqib ketsin β†’ visible
  • Kesilsin β†’ hidden
  • Kerak bo'lsa scroll β†’ auto
  • Majburiy scroll β†’ scroll

2. Block Formatting Context (BFC) nima?

🧠 BFC nima o'zi?

Block Formatting Context β€” bu brauzer ichida alohida layout hududi.

Oddiy qilib:

BFC β€” bu "ichki dunyo" ichidagi elementlar tashqariga aralashmaydi, tashqarisi ham ichkariga aralashmaydi.

🧱 BFC nimani hal qiladi?

Agar element BFC bo'lsa:

1️⃣ Ichidagi marginlar tashqariga collapse bo'lmaydi 2️⃣ Float qilingan elementlar parent'ni cho'ktirmaydi 3️⃣ Ichki layout barqaror bo'ladi 4️⃣ Tashqi elementlar ichkariga ta'sir qila olmaydi

🧠 Shu sabab BFC β€” layoutni "izolyatsiya" qilish usuli.

❓ Qachon BFC hosil bo'ladi?

Element BFC yaratadi, agar:

1️⃣ overflow visible dan boshqa bo'lsa

.parent {
  overflow: hidden;
}

yoki

.parent {
  overflow: auto;
}

2️⃣ display: flow-root bo'lsa (ENG TO'G'RI USUL)

.parent {
  display: flow-root;
}

Bu faqat BFC yaratadi, boshqa yon ta'siri yo'q.

3️⃣ display: flex yoki grid bo'lsa

.parent {
  display: flex;
}

πŸ‘‰ Flex/Grid konteyner avtomatik BFC.

4️⃣ position: absolute yoki fixed

.box {
  position: absolute;
}

πŸ‘‰ Ular ham BFC, lekin oqimdan chiqadi (shu sabab ehtiyot bo'lish kerak)

5️⃣ float qilingan element

.box {
  float: left;
}

πŸ‘‰ Float o'zi ham BFC.

🧨 Real muammo β†’ Real yechim

❌ Muammo 1: Margin collapse (ota–bola)

.parent {
  background: lightgray;
}

.child {
  margin-top: 40px;
}

πŸ‘‰ Bola pastga tushmaydi, ota siljiydi 😡

βœ… Yechim (BFC yaratamiz)

.parent {
  display: flow-root;
}

yoki:

.parent {
  overflow: hidden;
}

πŸ‘‰ Endi:

  • bola ichkarida siljiydi
  • collapse yo'q

❌ Muammo 2: Float parent'ni cho'ktiradi

.child {
  float: left;
}

πŸ‘‰ Parent height = 0 😬

βœ… Yechim (BFC)

.parent {
  display: flow-root;
}

πŸ‘‰ Parent endi bolani "ko'radi".

⚠️ overflow: hidden bilan ehtiyot bo'l

Ha, u BFC yaratadi. Lekin:

  • content kesilishi mumkin
  • dropdown, tooltip yo'qoladi

🧠 Professional qoida

Layout uchun β†’ flow-root Kesish uchun β†’ overflow

πŸ“Œ Xulosa

  • overflow β€” content sig'masligini boshqaradi
  • visible β€” chiqib ketadi (default)
  • hidden β€” kesiladi
  • auto β€” kerak bo'lsa scroll (eng yaxshi)
  • scroll β€” har doim scroll
  • BFC β€” layoutni izolyatsiya qiladi
  • display: flow-root β€” BFC yaratishning eng to'g'ri usuli
  • overflow: hidden ham BFC yaratadi, lekin content kesilishi mumkin