İçeriğe geç

CSS · 4/8

Kutu modeli: padding, border, margin

Kutu modelini hesaplamak ve taşmayı nedenine göre çözmek.

Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.

Bu sayfada · 9 başlık

Başlamadan önce

Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.

Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

CSS · Kutu modeli: padding, border, margin — videolu atölye: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.

Videoyla adım adım izle

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Kutu modeli: padding, border, margin

Kutu modelini hesaplamak ve taşmayı nedenine göre çözmek.

Kavramı kur

Her CSS kutusunda içerik alanı, padding, border ve dıştaki margin bulunur. Varsayılan content-box modelinde width yalnızca içerik genişliğidir. Bu nedenle 200px genişlik, iki tarafta 20px padding ve 3px border toplamda 246px yer kaplar; margin bu kutunun dışına ayrıca eklenir.

Neden böyle çalışıyor?

box-sizing:border-box genişlik hesabına padding ve border değerlerini dahil eder. Böylece width:200px dediğinde kutunun dış kenarlığına kadar olan genişliği 200px tutabilirsin. Margin hâlâ dışarıdadır. Bu kural bir kutuyu otomatik olarak mobil uyumlu yapmaz; verilen genişliğin kapsayıcıya sığması da gerekir.

Çalışma sırası

Taşma gördüğünde sayfaya overflow:hidden ekleyip belirtisini gizleme. DevTools kutu modelinde genişliği, padding değerlerini ve üst kapsayıcıyı incele. Uzun bölünemeyen metin, sabit min-width veya flex öğesinin minimum boyutu da taşmaya neden olabilir; sorunu gerçek kaynağında düzelt.

İkinci örnek · 1

content-box içerik genişliğine padding ve border ekler. Kodun tamamı yazılı derste bulunur.

Kod

<style>
* { box-sizing: border-box; }
.kart { width: 240px; max-width: 100%; padding: 20px;
  border: 4px solid #2563eb; margin: 12px 0; }
</style>
<div class="kart">Dış genişliğim en fazla 240px.</div>

Beklenen sonucu oku

max-width:100% kutunun kapsayıcısından geniş olmasını sınırlamaya yardım eder.

Beklenen çıktı: Padding ve kenarlığıyla birlikte en fazla 240px genişliğinde bir kutu.

Bir değeri sen değiştir

width:200px; padding:20px; border:3px için content-box toplamını hesapla. Aynı kutuyu border-box yapıp ölçümü karşılaştır.

Hata nereden gelir?

Padding ile margin aynı yere boşluk koymaz; DevTools renkli kutu gösterimini incele.

Kendi çözümünü kur

Kapsayıcıyı 180px genişliğe getir; max-width kuralının etkisini incele. İki yatay taraf vardır: genişliğe sağ ve sol padding ile sağ ve sol border eklenir.

Çözüm varyasyonu · 1

Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.

Kod

<style>*{box-sizing:border-box}.kutu{width:200px;max-width:100%;padding:20px;border:3px solid #245f9e}</style>
<div class="kutu">Toplam genişlik: 200px.</div>

Kendini kontrol et

200px content-box + iki yanda 20px padding + 3px border kaç piksel eder? Yanıt: 246px; margin hesabın dışında ayrıca yer kaplar.

Beklenen çıktı: border-box sayesinde 200px dış genişlik; iç alan 154px.

Konu anlatımı

Her CSS kutusunda içerik alanı, padding, border ve dıştaki margin bulunur. Varsayılan content-box modelinde width yalnızca içerik genişliğidir. Bu nedenle 200px genişlik, iki tarafta 20px padding ve 3px border toplamda 246px yer kaplar; margin bu kutunun dışına ayrıca eklenir.

box-sizing:border-box genişlik hesabına padding ve border değerlerini dahil eder. Böylece width:200px dediğinde kutunun dış kenarlığına kadar olan genişliği 200px tutabilirsin. Margin hâlâ dışarıdadır. Bu kural bir kutuyu otomatik olarak mobil uyumlu yapmaz; verilen genişliğin kapsayıcıya sığması da gerekir.

Taşma gördüğünde sayfaya overflow:hidden ekleyip belirtisini gizleme. DevTools kutu modelinde genişliği, padding değerlerini ve üst kapsayıcıyı incele. Uzun bölünemeyen metin, sabit min-width veya flex öğesinin minimum boyutu da taşmaya neden olabilir; sorunu gerçek kaynağında düzelt.

İlk örneği oku ve dene

4

Kutu modeli: padding, border, margin

Sayfadaki her öğe bir kutudur. padding içerik ile kenarlık arasındaki iç boşluk, border kenarlık, margin kutunun dışındaki boşluktur. Bunları bir tablodaki resim, paspartu ve çerçeve gibi düşünebilirsin.

CSS
<style>
  .kutu {
    width: 200px;
    padding: 20px;
    border: 3px solid #6366f1;
    margin: 30px;
    background-color: #eef2ff;
  }
</style>

<div class="kutu">Ben bir kutuyum</div>

▶ Sonuç

Kenarlardan 30 piksel içeride, mor kenarlıklı, içi açık mor ve yazısı kenarlardan 20 piksel uzakta duran bir kutu görünür.

Adım adım neden böyle çalışıyor?

  1. content-box içerik genişliğine padding ve border ekler.
  2. border-box verilen genişliğe padding ve border değerlerini dahil eder.
  3. margin komşu kutularla dış mesafeyi belirler.
  4. max-width:100% kutunun kapsayıcısından geniş olmasını sınırlamaya yardım eder.
104

İkinci çözümlü örnek

Kutu modelini hesaplamak ve taşmayı nedenine göre çözmek.

CSS
<style>
* { box-sizing: border-box; }
.kart { width: 240px; max-width: 100%; padding: 20px;
  border: 4px solid #2563eb; margin: 12px 0; }
</style>
<div class="kart">Dış genişliğim en fazla 240px.</div>

▶ Sonuç

Padding ve kenarlığıyla birlikte en fazla 240px genişliğinde bir kutu.

Kolaydan zora sen dene

  1. width:200px; padding:20px; border:3px için content-box toplamını hesapla.
  2. Aynı kutuyu border-box yapıp ölçümü karşılaştır.
  3. Kapsayıcıyı 180px genişliğe getir; max-width kuralının etkisini incele.
İpucunu aç

İki yatay taraf vardır: genişliğe sağ ve sol padding ile sağ ve sol border eklenir.

Üç görevin açıklamalı çözümünü oku
  1. 200+20+20+3+3=246px; margin ayrıca dışarıdadır.
  2. border-box ile dış genişlik 200px; iç alan 154px olur.
  3. max-width:100% dar kapsayıcıya sığmayı sağlar; padding hesabını border-box ile tutarlı yap.
Bir çözüm varyasyonu gör
204

Çözüm varyasyonu

Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.

CSS
<style>*{box-sizing:border-box}.kutu{width:200px;max-width:100%;padding:20px;border:3px solid #245f9e}</style>
<div class="kutu">Toplam genişlik: 200px.</div>

▶ Sonuç

border-box sayesinde 200px dış genişlik; iç alan 154px.

Yaygın hata ve çözümü

  1. Padding ile margin aynı yere boşluk koymaz; DevTools renkli kutu gösterimini incele.
  2. Taşmayı genel overflow:hidden ile gizlemek metni erişilemez kılabilir.

Kendini değerlendir

İç boşluk hangisidir?

Ezberlemeden açıklayabiliyor musun?

200px content-box + iki yanda 20px padding + 3px border kaç piksel eder?

Açıklamalı yanıt

246px; margin hesabın dışında ayrıca yer kaplar.

Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.

Kaynak ve çalışma ortamı

Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.

Resmî dil belgeleri
Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.