Sobes.tech
Middle

Чӣ тавр фишурдани марзҳо дар 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 билан қўшилиши мумкин. Шундай қилиб, ота ва сўнгги бола орасидаги чегаралар ҳам қўшилиши мумкин.

    <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) юз беради. Гorizontal чегаралар (margin-left ва margin-right) ҳеч қачон қўшилмайди.

Қўшилишни олдини олиш учун турли усуллар мавжуд, масалан, border, padding қўшиш, display: flex, display: grid, overflow: hidden ёки display: flow-root yordamida янги форматлаш контексти яратиш.