CSS kutu modeli (Box Model), web sayfasındaki her öğeyi (metin, resim, düğme, vb.) bir kutu olarak kabul eder ve bu kutunun nasıl görünmesi gerektiğini tanımlar. Kutu modeli, öğelerin boyutlarını, iç boşluklarını (padding), dış boşluklarını (margin), kenarlıklarını (border) ve içeriklerini (content) belirleyen temel bir yapıdır. Kutu modelini doğru anlamak, web tasarımının temellerini anlamanızı sağlar ve düzenli, uyumlu bir sayfa oluşturmanızı kolaylaştırır.
Kutu Modeli Bileşenleri
CSS kutu modelinin dört ana bileşeni vardır:
- İçerik (Content):
- Bu, öğenin asıl içeriğidir. Metin, resim veya öğenin içine yerleştirilmiş diğer öğeler burada bulunur.
- İçeriğin boyutu,
width
veheight
özellikleriyle belirlenir.
- İç Boşluk (Padding):
- İçerik ile kenarlık (border) arasındaki boşluktur.
padding
özelliğiyle kontrol edilir ve içeriğin etrafındaki boşluğu artırmak için kullanılır.padding
‘in değeri arttıkça, öğenin içerik alanı küçülür.
- Kenarlık (Border):
- İçerik ve padding arasındaki sınır çizgisidir.
border
özelliğiyle stil, renk ve kalınlık ayarlanabilir.- Kenarlık, öğe ile çevresindeki diğer öğeler arasındaki görsel ayrımı sağlar.
- Dış Boşluk (Margin):
- Öğenin çevresindeki dış boşluktur ve diğer öğelerden ne kadar uzak olacağını belirler.
margin
özelliği ile öğe etrafındaki boşluk kontrol edilir.- Margin, öğe dışındaki alanı kontrol etmek için kullanılır ve öğelerin birbirinden ne kadar uzakta olduğunu belirler.
Kutu Modeli Özellikleri
CSS kutu modelinde her bileşenin etkisi ve nasıl çalıştığına dair daha fazla detaylı bilgi:
- width & height:
Bu iki özellik öğenin içerik alanının genişliğini ve yüksekliğini belirler. Ancak bu, öğenin toplam boyutunu belirtmez, çünkü padding, border ve margin da dikkate alınır. - box-sizing:
box-sizing
özelliği, kutu modelinin nasıl hesaplanacağını kontrol eder. İki farklı değer alabilir:content-box
: Bu, varsayılan kutu modelidir ve öğe boyutu sadece içerik kısmını dikkate alır.border-box
: Bu modelde ise, öğenin toplam boyutuna border ve padding de dahildir. Yani,width
veheight
sadece içerik değil, içerik, padding ve border’ı da kapsar.
Örnek:
box-sizing: border-box;
Bu, öğe boyutlarıyla birlikte border ve padding’i de hesaba katar, böylece öğenin toplam boyutu her zaman sabit olur.
Kutu Modeli Hesaplama
Varsayılan kutu modelinde (box-sizing: content-box
), öğenin toplam genişliği ve yüksekliği şu şekilde hesaplanır:
- Toplam Genişlik = width + padding sol + padding sağ + border sol + border sağ + margin sol + margin sağ
- Toplam Yükseklik = height + padding üst + padding alt + border üst + border alt + margin üst + margin alt
Örnek:
div {
width: 200px;
padding: 20px;
border: 5px solid black;
margin: 10px;
}
Bu durumda, öğenin toplam genişliği:
- 200px (width) + 40px (padding sol + sağ) + 10px (border sol + sağ) = 250px
- Toplam yüksekliği de benzer şekilde hesaplanabilir.
Kutu Modeli ile İlgili Örnekler
- Öğenin Boyutlandırılması
div {
width: 300px;
height: 200px;
padding: 20px;
border: 5px solid black;
margin: 15px;
box-sizing: border-box;
}
Burada, box-sizing: border-box
kullanıldığı için, öğenin toplam genişliği ve yüksekliği 300px x 200px olarak belirlenir, padding ve border bu genişlik ve yükseklik içinde yer alır.
Padding ve Margin Kullanımı
.container {
width: 100%;
padding: 10px;
margin: 20px;
background-color: lightgray;
}
Bu örnekte, padding
öğenin iç kısmına boşluk eklerken, margin
öğenin etrafındaki dış boşluğu artırır.
Kutu Modeli İçin İpuçları
- Flexbox ve Grid ile Uyumluluk:
Kutu modelinin doğru anlaşılması, modern CSS düzen araçları olan Flexbox ve Grid ile çalışırken oldukça önemlidir. Bu araçlar, öğelerin yerleşimlerini daha esnek bir şekilde düzenlemenize yardımcı olur, ancak kutu modeline dikkat edilmesi gerekmektedir. - Görsel Düzenlemelerde Performans:
box-sizing: border-box
kullanımı, özellikle responsive tasarımda daha yaygındır çünkü öğe boyutları arasında tutarsızlıkları önler. Padding ve border eklediğinizde öğenin boyutu değişmez. - Margin Çöküşü:
Margin çöküşü, üst ve alt margin değerlerinin birleşerek daha büyük bir boşluk oluşturması durumudur. Bu durumu anlamak ve çözmek, düzenin doğru görünmesini sağlar.