Bir nesnenin kapladığı alan nesnenin genişliği + padding + border değerlerinin toplamıdır.
Örneğin 2 tane <div>' in padding haricinde tüm özellikleri aynı olsun.
<div id="red"> </div> <div id="blue"> </div>
div{ margin:10px; } #red { width:400px; height:50px; border:1px solid red; } #blue { width:400px; height:50px; border:1px solid blue; padding:20px; }
Ancak örnekte görüldüğü gibi div' lerin kapladığı alan birbirinden farklıdır. Çünkü bir nesneye verdiğimiz genişlik ya da yükseklikten başka bir de padding ve border değerlerini işin içine katmamız gerekiyor ki; nesnenin kapladığı toplam alanı bulalım.
Örnek 1 için tıklayınız.
Bu durum çoğu zaman uğraşılması zor bir durum olarak algılanır ve bu duruma çözüm olarak box-sizing:border-box özelliği yardımımıza koşar. Yani nesnelerin kapladığı alanı bulmak için padding ve border genişlikleriyle uğraşmak zorunda değiliz.
Yukarıdaki örnekte tek değiştirmemiz gereken alan <div> lerin box-sizing özelliğini border-box yapmak olacaktır.
div{ margin:10px; box-sizing:border-box; }
div etiketleri için uyguladığımız box-sizing:border-box özelliğinden dolayı padding ve border değerlerinin kapladığı alan hesaba katılmaz ve nesnelerin kapladığı alan sadece verdiğimiz genişlik kadar olacaktır.
Yani div için verdiğimiz genişlik+border+padding = 400px olacaktır.
Örnek 2 için tıklayınız.
Sadece div etiketlerine box-sizing:border-box vermek yerine sayfanın en başında * ile tüm etiketlere ulaşıp bu değeri vermek içinizi oldukça kolaylaştıracaktır.
* { box-sizing: border-box; }