Ի՞նչ է CSS-ում սահմանների կլանումը։
sobes.tech AI
Պատասխան AI-ից
Մարգինների խտացում (margin collapsing) CSS-ում այն երևույթն է, երբ հարևան բլոկների ուղղահայաց մարգինները միավորվում են մեկի մեջ։ Այս միացրած մարգինի չափը որոշվում է որպես առավելագույն արժեքը այն մարգիններից, որոնք խտանում են։
Խտացումը տեղի է ունենում հետևյալ դեպքերում՝
-
Հարևան տարրերի միջև: Երկու հարևան տարրերի ուղղահայաց մարգինները խտանում են։
<p>Հոդված 1</p> <p>Հոդված 2</p>Եթե
<p>-ն ունի համապատասխանmargin-bottomևmargin-top, այդ մարգինները կարող են խտանալ։ -
Հայր և նրա առաջին/վերջին երեխայի միջև: Եթե հայր տարրն չունի
border,padding,display: flex,display: grid,overflow: hiddenկամ այլ հատկություններ, որոնք ստեղծում են ձևաչափման կոնտեքստ, նրա վերևի մարգինն կարող է խտանալ առաջին երեխայիmargin-top-ի հետ։ Նմանապես, հայր տարրն իր վերջին երեխայիmargin-bottom-ի հետ կարող է խտանալ։<div class="parent"> <p class="child">Երեխայի տարր</p> </div> -
Դատարկ տարրում: Եթե տարրն իր բովանդակությունը չունի (
height: 0, առանցborderևpadding), նրա վերևի և ներքևի մարգինները կարող են խտանալ։<div class="empty"></div>
Տախտակ, որը ցույց է տալիս խտացման արդյունքները՝
| Margin 1 | Margin 2 | Խտացման արդյունք |
|---|---|---|
| 10px | 15px | 15px |
| 20px | -5px | 20px |
| -10px | -15px | -10px |
Մարգինների խտացումը տեղի է ունենում միայն ուղղահայաց ուղղությամբ (margin-top և margin-bottom)։ Հորիզոնական մարգինները (margin-left և margin-right) երբեք չեն խտանում։
Կան միջոցներ խտացումը կանխելու համար, օրինակ՝ border, padding ավելացնելը, օգտագործել display: flex, display: grid, overflow: hidden կամ ստեղծել նոր ձևաչափման կոնտեքստ՝ display: flow-root-ի միջոցով։