CSS Asoslari - 13-dars
position: absolute, fixed va sticky tushunchalarini chuqur o'rganing. Ular qanday ishlaydi, qachon ishlatiladi va eng ko'p uchraydigan xatolarni tushuning.
13-dars
O'zing nomla
1. position: absolute qayerga nisbatan joylashadi?
Eng muhim qoida
position: absolute eng yaqin position berilgan ota elementga nisbatan joylashadi
Agar bunday ota yo'q bo'lsa 👉 butun sahifaga (viewport) nisbatan.
Absolute nima qiladi?
position: absolute degani:
"Meni oddiy oqimdan chiqar, va qo'lda joylashtir"
Natijada:
- ❌ normal document flow'dan chiqadi
- ❌ joyi yo'qoladi (bo'sh joy qolmaydi)
- ✅ top / left / right / bottom ishlaydi
1️⃣ Ota BOR holat (to'g'ri variant)
<div class="card">
<span class="badge">NEW</span>
</div>
.card {
position: relative;
}
.badge {
position: absolute;
top: 0;
right: 0;
}
👉 Bu yerda:
.badge .card ga nisbatan
yuqori o'ng burchakka joylashdi
2️⃣ Ota YO'Q holat (klassik xato)
.card {
/* position yo'q */
}
.badge {
position: absolute;
top: 0;
right: 0;
}
👉 Natija:
.badge butun sahifaga nisbatan chiqadi
"nega navbar ustiga chiqib ketdi?" degan savol paydo bo'ladi
Engine ichida nima bo'ladi? 🧠
Brauzer algoritmi juda sodda:
- absolute elementni ko'rdim
- Yuqoriga qarab chiqaman
- position ≠ static bo'lgan birinchi ota — TOPILDI ✅
- Shu elementga nisbatan joylashtiraman
- Agar topilmasa: 👉 viewport (html/body)
Nega absolute'ning joyi yo'qoladi?
Chunki u:
- normal flow'dan chiqadi
- brauzer unga joy ajratmaydi
<div class="box"></div>
<p>Matn</p>
.box {
position: absolute;
}
👉 Natija:
- p yuqoriga ko'tariladi
- box ustma-ust chiqadi
Bu xato emas, bu absolute'ning tabiati.
Absolute qachon ishlatiladi?
✅ Badge, icon, label ✅ Modal ichidagi close tugma ✅ Card ichidagi overlay ✅ Tooltip, dropdown
❌ Katta sahifa layouti uchun ❌ Asosiy ustunlar uchun
2. position: fixed qanday ishlaydi?
Eng muhim qoida
position: fixed OTA QIDIRMAYDI LAYOUTGA QARAMAYDI VIEWPORTGA BOG'LANADI
Bu uchta gap — butun fixed'ning mohiyati.
fixed aslida nima?
position: fixed degani:
"Meni sahifaga emas, foydalanuvchi ekraniga mixlab qo'y"
Natijada:
- element normal flow'dan chiqadi
- scroll bilan harakatlanmaydi
- doim bir joyda turadi
Oddiy misol (klassik)
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
}
👉 Natija:
sahifa scroll bo'lsa ham
header tepada qotib turadi
Fixed nimaga nisbatan joylashadi?
👉 Viewport ga.
Ya'ni:
- brauzer oynasi
- telefon ekrani
- user ko'rayotgan qism
❗ relative ota ❌ ❗ absolute ota ❌ ❗ parent ❌
Fixed uchun faqat ekran bor.
Engine darajasida nima bo'ladi? 🧠
Brauzer shunday deydi:
"Bu element sahifaning bir qismi emas. Bu — interfeys elementi."
Shuning uchun:
- layout hisobidan chiqadi
- scroll hisobiga kirmaydi
3. position: sticky nima va nega ko'pincha ishlamaydi?
position: sticky nima o'zi?
sticky — bu relative + fixed aralashmasi.
Brauzer bunday o'ylaydi:
"Avval joyingda tur, lekin scroll kelganda — ma'lum joyga kelib qotib qol."
Sticky qanday ishlaydi? (bosqichma-bosqich 🧠)
1️⃣ Element oddiy oqimda turadi (relative kabi) 2️⃣ Scroll bo'ladi 3️⃣ Belgilangan nuqtaga keladi (top, bottom) 4️⃣ Shu joyda qotib qoladi (fixed kabi) 5️⃣ Ota konteyner tugasa — yana ketadi
ENG MUHIM QOIDA 🔒
sticky ishlashi uchun top yoki bottom SHART
❌ Buni qo'ymasang — hech qachon ishlamaydi
.bad {
position: sticky;
}
❌ Ishlamaydi
.good {
position: sticky;
top: 0;
}
✅ Ishlaydi
Ikkinchi MUHIM shart ⚠️
Sticky ota konteynerdan chiqib keta olmaydi
Ya'ni:
- sticky butun sahifa uchun emas
- ota element chegarasi ichida
Agar ota kichik bo'lsa → sticky tez o'chadi
Eng ko'p uchraydigan 5 ta sabab (nega ishlamaydi)
❌ 1. top yo'q
➡️ 80% muammo shu
❌ 2. Ota elementda overflow: hidden / auto / scroll
.parent {
overflow: hidden;
}
👉 Sticky o'chadi Sabab: scroll kontekst o'zgargan
❌ 3. Ota elementning balandligi yetarli emas
Sticky ishlashi uchun:
- scroll bo'lishi kerak
- joy bo'lishi kerak
❌ 4. display: flex ichida noto'g'ri ishlatilgan
Ba'zi flex holatlarda sticky ishlamaydi (ayniqsa align-items: stretch bilan)
❌ 5. Browser support / kutilmagan context
Eski browserlar yoki murakkab nesting
📊 POSITION VALUE'LAR TAQQOSLASH JADVALI (ENG MUHIM QISM)
| Position | Oqimda qoladimi | Joy egallaydimi | Nisbatan joylashadi | Scroll ta'siri | Qachon ishlatiladi |
|---|---|---|---|---|---|
| static | ✅ | ✅ | Hech qayerga | Scroll bilan yuradi | Default holat |
| relative | ✅ | ✅ | O'ziga nisbatan | Scroll bilan yuradi | Absolute uchun ota |
| absolute | ❌ | ❌ | Eng yaqin position'li ota | Scroll bilan yuradi | Badge, overlay |
| fixed | ❌ | ❌ | Viewport | ❌ Qimirlamaydi | Header, floating UI |
| sticky | ✅ (boshlanishida) | ✅ | Ota + viewport | Shartli qotadi | Section header |