CSS Box Sizing
Padding ve border’ın kutuyu ilan edilen width’ten büyük yapabildiğini biliyorsunuz. box-sizing bu hesabın kuralını seçer: width «yalnızca content» mi demektir, yoksa «content artı padding artı border» mı?
Bir bakışta iki model
📊 content-box ve border-box
| Model | width / height neyi kapsar |
Günlük etki |
|---|---|---|
content-box (varsayılan) |
Yalnızca content | Padding ve border ilan edilen boyutun dışına eklenir |
border-box |
Content + padding + border | İlan edilen boyut dış border kenarıdır; content sığmak için küçülür |
| Margin | İkisinde de yok | Dış boşluk box-sizing’den ayrı kalır |
Varsayılan: content-box
Varsayılan modelde width: 200px content’i ölçer. Padding ve border ekleyin — boyalı kutu büyür.
Content-box (varsayılan)
css.panel-content {
box-sizing: content-box;
width: 200px;
padding: 20px;
border: 4px solid #0f766e;
background-color: #ccfbf1;
}
/* Content 200px + padding + border → toplam daha geniş */
border-box’a geçin
border-box ile aynı width: 200px padding ve border’ı içerir. Dış kenar ~200px’e yakın kalır; content alanı küçülür.
Border-box boyutlandırma
css.panel-border {
box-sizing: border-box;
width: 200px;
padding: 20px;
border: 4px solid #0f766e;
background-color: #99f6e4;
}
/* Dış border kutusu 200px hedefler; content küçülür */
Aynı sayılar, farklı iz
Her iki modeli aynı genişlik, padding ve border ile yan yana koyun.
İki modeli karşılaştır
css.contenty {
box-sizing: content-box;
width: 180px;
padding: 16px;
border: 6px solid #b45309;
background-color: #fef3c7;
}
.borderish {
box-sizing: border-box;
width: 180px;
padding: 16px;
border: 6px solid #b45309;
background-color: #fde68a;
}
/* Aynı bildirimler; .contenty daha çok yatay yer kaplar */
Ekipler border-box’ı neden sever
Bir kartın sütunu tam doldurması gerektiğinde — örneğin padding’li width: 100% — border-box kartın parent’tan taşmasını engeller.
Sütun dostu kart
css.card {
box-sizing: border-box;
width: 100%;
padding: 1.25rem;
border: 1px solid #cbd5e1;
background-color: #ffffff;
}
Sakin bir global alışkanlık
Birçok stil sayfası günlük genişlik hesabını öngörülebilir tutmak için her şeye bir kez border-box koyar. Margin hâlâ dışarıdadır.
Evrensel border-box alışkanlığı
css*,
*::before,
*::after {
box-sizing: border-box;
}
Kendiniz deneyin
- content-box altında
width: 200px, padding ve border ile.panel-contentkurun. box-sizing: border-boxile.panel-borderkopyalayın — dış boyutun 200px’e yaklaştığını görün.- Aynı sayılarla
.contentyve.borderish’i yan yana koyun. - Padding’li bir
width: 100%kart yapın; box-sizing’i değiştirip hangisinin taştığını görün. - Küçük bir demo sayfada evrensel
*alışkanlığını deneyin.
Sık hatalar
- Border-box’ın margin’i de kapsadığını sanmak (kapsamaz)
- Değiştirene kadar varsayılanın content-box olduğunu unutmak
- Outline’ın box-sizing’i izlemesini beklemek (outline dışarıda kalır ve hâlâ düzen yeri kaplamaz)
- content-box altında ağır padding’li
width: 100%yazıp taşmaya şaşırmak - Hangi boyutlandırma modelinin aktif olduğunu bilmeden yüzdeleri karıştırmak
Özet
- Varsayılan
box-sizing: content-boxcontent’i ölçer; padding ve border eklenir border-boxpadding ve border’ı ilan edilen genişlik/yükseklik içinde tutar- Margin her iki modelin dışındadır
- Border-box çoğu zaman sütun genişliklerini ve
width: 100%kartları kolaylaştırır - Evrensel border-box sıfırlaması yaygın, sakin bir alışkanlıktır
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek