Middle
CSSda chegaralarni yopishtirish nima?
sobes.tech AI
AIdan javob
CSS-da margin collapsing (chekilash) hodisasi, yonma-yon joylashgan ikki yoki undan ortiq bloklarning vertikal chegaralari birlashib, bitta chegaraga aylanadigan hodisadir. Bu umumiy chegaraning o'lchami, birlashayotgan chegaralarning eng katta qiymati bilan belgilanadi.
Asosiy qoidalar:
- Faqat vertikal chegaralar (
margin-topvamargin-bottom) birlashadi. Gorizontal chegaralar birlashmaydi. - Faqat yonma-yon elementlarning chegaralari, agar ular orasida boshqa elementlar, padding, border yoki blok ichki mazmuni bo'lmasa, birlashadi.
- Birinchi bolaning yuqori chegarasi, agar ular orasida
padding,borderyoki boshqa mazmun bo'lmasa, uning ota-ona bilan birlashadi. - Oxirgi bolaning pastki chegarasi, agar ular orasida
padding,borderyoki boshqa mazmun bo'lmasa, uning ota-ona bilan birlashadi. - Bo'sh elementlarning yuqori va pastki chegaralari, agar ular
padding,borderyoki mazmun bilan to'ldirilmagan bo'lsa, birlashishi mumkin. - Agar birlashayotgan chegaralardan biri manfiy bo'lsa, yakuniy o'lcham, musbat va manfiy qiymatlarning yig'indisi yoki ikkalasi ham manfiy bo'lsa, absolyut qiymati bilan hisoblanadi.
Misol:
<div class="box1">Element 1</div>
<div class="box2">Element 2</div>
.box1 {
margin-bottom: 20px;
}
.box2 {
margin-top: 30px;
}
Bu holatda, box1 va box2 orasidagi vertikal masofa 30px bo'ladi (20px va 30px orasidagi eng katta qiymat), 50px emas.
Oldini olish usullari:
- Elementlar orasiga
paddingyokiborderqo'shish. - Yangi formatlash blokini yaratish (masalan,
overflow: hidden,display: flow-rootyoki suzuvchi elementlar yordamida). - Elementlar uchun
display: inline-block,display: flexyokidisplay: gridni ishlatish. - Absolyut joylashishni qo'llash.