CSS'de kenarların çökmesi nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Margin çökmesi (margin collapsing), CSS'te yan yana gelen blokların dikey marginlerinin tek bir margin haline gelmesi olayıdır. Bu birleşmiş marginin boyutu, çöküşen marginlerin maksimum değeri olarak belirlenir.
Çöküş aşağıdaki durumlarda gerçekleşir:
-
Yan yana gelen öğeler arasında: İki komşu öğenin dikey marginleri çöküşür.
<p>Paragraf 1</p> <p>Paragraf 2</p>Eğer
<p>öğeleri sırasıylamargin-bottomvemargin-topözelliklerine sahipse, bu marginler çökebilir. -
Bir ebeveyn ile ilk/son çocuk arasında: Eğer ebeveynin
border,padding,display: flex,display: grid,overflow: hiddenveya diğer formatlama bağlamı oluşturan özellikleri yoksa, üst marginmargin-topilk çocuğa, alt margin ise son çocuğa çökebilir.<div class="parent"> <p class="child">Çocuk öğesi</p> </div> -
Boş bir öğede: Eğer bir öğenin içeriği yoksa (
height: 0,borderveyapaddingolmadan), üst ve alt marginleri birbirleriyle çökebilir.<div class="empty"></div>
Çöküş sonuçlarını gösteren tablo:
| Margin 1 | Margin 2 | Çöküş sonucu |
|---|---|---|
| 10px | 15px | 15px |
| 20px | -5px | 20px |
| -10px | -15px | -10px |
Margin çökmesi yalnızca dikey yönde (sadece margin-top ve margin-bottom) gerçekleşir. Yatay marginler (margin-left ve margin-right) asla çökmez.
Çöküşü önlemek için çeşitli yollar vardır, örneğin border, padding eklemek, display: flex, display: grid kullanmak, overflow: hidden uygulamak veya display: flow-root ile yeni bir formatlama bağlamı oluşturmaktır.