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:
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:
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:
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:
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:
* {
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:
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
Özellik | content-box (Varsayılan) | border-box (Önerilen) |
Genişlik hesabı | Sadece içerik alanını kapsar | Padding ve border dahil toplam genişliği kapsar |
Padding ve Border Eklenirse? | Kutunun toplam genişliği artar | Kutunun toplam genişliği değişmez |
Tasarım Bozulur mu? | Evet, taşmalar ve beklenmedik genişlemeler olabilir | Hayır, kutunun genişliği sabit kalır |
Mobil Uyumluluk | Daha zor yönetilir | Daha iyi uyum sağlar |
Önerilen Kullanım | Özel durumlar | Genel 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.