Fungsi dan kegunaan box-sizing pada CSS

Dengan properti box-sizing Anda bisa menggunakannya untuk membuat suatu box elemen memiliki width dan

Kegunaan box-sizing

Pada CSS3 terdapat fitur baru yaitu properti box-sizing. Dengan properti ini Anda bisa menggunakannya untuk membuat suatu box elemen memiliki width dan height tetap dalam ukuran aslinya meski pun didalamnya terdapat properti padding dan border.

Perhitungan box-sizing

Secara default, lebar dan tinggi suatu elemen dihitung bergantung pada width, height, padding dan border. Untuk lebih jelasnya silakan lihat box dibawah ini:

Box div ini memiliki:
*width 300px
*height 150px
*padding 20px
*border 10px

Berapa lebar dan tinggi dari box diatas?

Mungkin Anda mengira lebar 300px dan tinggi 150px bukan?

Jika demikian perhitungan Anda salah.

Jadi browser menghitungnya seperti ini:

Kita memberikan width sebesar 300px dan height 150px!
ditambah padding sebesar 20px, maka total padding menjadi 80px (untuk width: 20px left dan 20px right. untuk height: 20px top dan 20px bottom) Jadi total width menjadi: 340px dan height 190px.

Lalu kita akan menghitung border:

ditambah border sebesar 10px, maka total border menjadi 40px (untuk width: 10px left dan 10px right. untuk height: 10px top dan 10px bottom) Jadi total width menjadi: 360px dan height 210px.

Dalam dunia CSS, kasus seperti ini disebut dengan box-model. Terdapat dua properti
yang mempengaruhi ukuran dari sebuah box yaitu padding dan border. Perhatikan
skema box model berikut untuk contoh kasus di atas :

perhitungan dari box-sizing
Informasi: bahwa setiap elemen/tag HTML ditampilkan dalam bentuk
box/kotak, jadi aturan box-model berlaku untuk seluruh elemen HTML.

Memperbaiki box model

Dengan properti box-sizing Anda bisa memperbaiki suatu elemen box/kotak agar sesuai dengan properti width dan height.

#box1 {
    width: 300px;
    height: 150px;
	background-color: yellow;
    box-sizing: border-box;
}
#box2 {
    width: 300px;
    height: 150px;
	background-color: yellow;
    padding:  20px;
    box-sizing: border-box;
}
#box3 {
    width: 300px;
    height: 150px;
    border: 10px solid black;
    box-sizing: border-box;
}
#box4 {
    width: 300px;
    height: 150px;
    padding: 20px;
    border: 10px solid black;
    box-sizing: border-box;
}

Sekarang Anda tidak perlu khawatir tentang ukuran akhir kotak elemen jika menambahkan properti padding atau border.

Jika Anda perhatikan contoh diatas, itu berarti Anda harus melakukan perulangan box-sizing: border-box; untuk memastikan bahwa semua elemen diukur dengan cara yang lebih intuitif.

Contoh dibawah ini menerapkan ke semua elemen dengan menggunakan selektor bintang * :

*  {
    box-sizing: border-box;
}