Tüm blog yazıları

CSS Box-Sizing ile Kutu Yönetimi

Web geliştirme sürecinde, sayfadaki kutuların (div, buton, input vb.) genişliğini ve yüksekliğini doğru şekilde ayarlamak bazen kafa karıştırıcı olabilir. Box-sizing, CSS’te kutuların padding (iç boşluk) ve border (kenarlık) dahil toplam geni

eminbasbayan4 dk okuma
CSS Box-Sizing ile Kutu Yönetimi

Web geliştirme sürecinde, sayfadaki kutuların (div, buton, input vb.) genişliğini ve yüksekliğini doğru şekilde ayarlamak bazen kafa karıştırıcı olabilir. Box-sizing, CSS’te kutuların padding (iç boşluk) ve border (kenarlık) dahil toplam genişliklerinin nasıl hesaplanacağını belirleyen bir özellik olarak bu sorunu çözer.

Bu yazıda box-sizing nedir, nasıl çalışır ve neden kullanmalıyız sorularına basit ve anlaşılır bir şekilde yanıt vereceğiz.

1. Box-Sizing Nedir?

Varsayılan olarak, CSS’te bir öğeye width (genişlik) ve height (yükseklik) verdiğinizde, bu sadece içeriğin boyutunu belirler. Ancak border ve padding eklediğinizde, kutunun gerçek boyutu artar. İşte bu noktada box-sizing devreye girer ve toplam genişliği daha yönetilebilir hale getirir.

Box-sizing ile ilgili temel iki değer vardır:

  • content-box (Varsayılan değer)
  • border-box (Tercih edilen yöntem)

2. content-box Nedir? (Varsayılan Değer)

Eğer box-sizing belirtmezseniz, tarayıcı varsayılan olarak content-box değerini kullanır. Bu durumda, width ve height sadece içerik alanını kapsar, padding ve border eklenince kutunun gerçek boyutu artar.

Örnek:

css
div {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid black;
  box-sizing: content-box;
}

Bu durumda, kutunun gerçek genişliği şu şekilde hesaplanır:

metin
200px (içerik) + 20px (sol padding) + 20px (sağ padding) + 
5px (sol border) + 5px (sağ border) = 250px

Yani, biz 200px olarak belirledik ama kutu 250px oldu.

Bu, tasarımın bozulmasına neden olabilir, çünkü belirlediğiniz genişlikten daha büyük bir kutu oluşur.

3. border-box Nedir? (En Çok Kullanılan Yöntem)

Eğer kutunun toplam genişliğinin değişmesini istemiyorsanız, box-sizing: border-box; kullanmalısınız. Bu yöntem, padding ve border’ı genişlik ve yükseklik hesabına dahil eder ve gerçek genişlik değişmez.

Örnek:

css
div {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid black;
  box-sizing: border-box;
}

Bu durumda, kutunun gerçek genişliği şu şekilde hesaplanır:

metin
200px (içerik + padding + border)

Yani, bu kutunun genişliği her zaman tam olarak 200 piksel kalır.

Bu yöntem, öğelerin daha tahmin edilebilir bir şekilde düzenlenmesini sağlar.

4. border-box Kullanmanın Avantajları

  • Öğelerin genişliği her zaman sabit kalır, beklenmedik taşmalar olmaz.
  • Daha kolay tasarım ve hizalama yapabilirsiniz.
  • Mobil uyumlu (responsive) tasarımlar daha iyi çalışır.
  • Kutu içeriği büyüdüğünde, dış genişlik değişmez ve bozulmalar engellenir.

Bu yüzden, modern CSS yazarken çoğu geliştirici box-sizing: border-box; kullanmayı tercih eder.

5. box-sizing’i Tüm Sayfada Kullanma

Eğer tüm öğelerin border-box ile çalışmasını istiyorsanız, aşağıdaki CSS kodunu kullanabilirsiniz:

css
* {
  box-sizing: border-box;
}

Bu, tüm öğelere border-box uygulanmasını sağlar. Böylece tasarımınızın tutarlılığı artar ve her öğenin toplam genişliği sabit kalır.

Ek olarak, iç içe öğelerle daha iyi çalışması için şöyle bir yöntem kullanabilirsiniz:

css
html {
  box-sizing: border-box;
}
*, *::before, *::after {
  box-sizing: inherit;
}

Bu yöntem, iç içe geçmiş öğelerin ana öğeden box-sizing özelliğini miras almasını sağlar. Böylece, içerik ve bileşenler arasında daha düzgün bir görünüm elde edersiniz.

6. content-box ve border-box Arasındaki Fark

Özellikcontent-box (Varsayılan)border-box (Önerilen)
Genişlik hesabıSadece içerik alanını kapsarPadding ve border dahil toplam genişliği kapsar
Padding ve Border Eklenirse?Kutunun toplam genişliği artarKutunun toplam genişliği değişmez
Tasarım Bozulur mu?Evet, taşmalar ve beklenmedik genişlemeler olabilirHayır, kutunun genişliği sabit kalır
Mobil UyumlulukDaha zor yönetilirDaha iyi uyum sağlar
Önerilen KullanımÖzel durumlarGenel kullanım

Tavsiye: Yeni başlayanlar için border-box kullanmak en iyi seçimdir çünkü tasarımların bozulmasını önler ve her şeyin istediğiniz genişlikte kalmasını sağlar.

Özet: CSS box-sizing ile Neler Öğrendik?

  • Box-sizing, öğelerin genişliğini ve yüksekliğini hesaplama yöntemidir.
  • Varsayılan olarak content-box kullanılır ama border-box daha avantajlıdır.
  • border-box, padding ve border’ı dahil eder, genişliği değiştirmez.
  • Web sayfanızda tutarlı bir tasarım için box-sizing: border-box; kullanmalısınız.

Şimdi Ne Yapmalısınız?

  • HTML ve CSS dosyanızda box-sizing özelliğini kullanarak testler yapın.
  • Hem content-box hem de border-box kullanarak öğelerin nasıl davrandığını gözlemleyin.
  • Responsive (mobil uyumlu) tasarımlarda border-box kullanarak kutuların nasıl daha iyi hizalandığını deneyin.

Artık CSS box-sizing özelliğini anladığınıza göre, tasarımlarınızı daha düzenli ve profesyonel hale getirebilirsiniz.

CSS Flexbox: Order Nedir?
CSS Dersleri2 dk okuma

CSS Flexbox: Order Nedir?

Flexbox, web sayfalarında öğeleri esnek ve düzenli bir şekilde hizalamamızı sağlar. Flexbox’ın sunduğu en ilginç özelliklerden biri de order özelliğidir. Peki order tam olarak ne işe yarar?

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele