The box-sizing
properti di CSS mengontrol bagaimana model kotak ditangani untuk elemen itu berlaku untuk.
.module ( box-sizing: border-box; )
Salah satu cara yang lebih umum untuk menggunakannya adalah dengan menerapkannya ke semua elemen di halaman, termasuk elemen pseudo:
*, *::before, *::after ( box-sizing: border-box; )
Ini sering disebut "ukuran kotak universal", dan ini cara yang baik untuk bekerja! (Literal) yang width
Anda tetapkan adalah lebar yang Anda peroleh, tanpa harus melakukan matematika mental dan mengelola kompleksitas yang berasal dari lebar yang berasal dari beberapa properti. Kami bahkan memiliki hari kesadaran mengukur ukuran kotak di sekitar sini.
Nilai
content-box
: default. Nilai lebar dan tinggi hanya berlaku untuk konten elemen. Padding dan border ditambahkan di luar kotak.padding-box
: Nilai lebar dan tinggi berlaku untuk konten elemen dan paddingnya. Perbatasan ditambahkan di luar kotak. Saat ini, hanya Firefox yang mendukungpadding-box
nilai tersebut.border-box
: Nilai lebar dan tinggi berlaku untuk konten, padding, dan batas.inherit
: mewarisi ukuran kotak dari elemen induk.
Contoh
Gambar contoh ini membandingkan default content-box
(atas) ke border-box
(bawah):
Garis merah di antara gambar mewakili nilai lebar elemen. Perhatikan bahwa elemen dengan default box-sizing: content-box;
melebihi lebar yang dideklarasikan ketika padding dan border ditambahkan ke luar kotak konten, sedangkan elemen dengan box-sizing: border-box;
diterapkan cocok sepenuhnya dalam lebar yang dinyatakan.
Menggunakan Ukuran Kotak
Katakanlah Anda menyetel elemen ke width: 100px; padding: 20px; border: 5px solid black;
. Secara default, kotak yang dihasilkan berukuran lebar 150px. Itu karena model ukuran kotak default adalah content-box
, yang menerapkan lebar elemen yang dideklarasikan ke isinya saja, menempatkan padding dan batas di luar kotak elemen. Ini secara efektif meningkatkan berapa banyak ruang yang dibutuhkan elemen.
Jika Anda mengubah box-sizing
menjadi padding-box
, bantalan akan didorong ke dalam kotak elemen. Kemudian, kotak akan menjadi lebar 110px, dengan 20px padding di bagian dalam dan 10px di bagian luar. Jika Anda ingin meletakkan padding dan border di dalam box, Anda bisa menggunakan border-box
. Kotak itu kemudian akan menjadi lebar 100px - perbatasan 10px dan bantalan 20px keduanya didorong ke dalam kotak elemen.
Demo
Lihat Perbandingan Pena dari nilai ukuran kotak oleh CSS-Tricks (@ css-trick) di CodePen.
Terkait
width
height
padding
border
Dukungan Browser
Chrome | Safari | Firefox | Opera | YAITU | Android | iOS |
---|---|---|---|---|---|---|
Apa saja * † | 3 * † | 1 ‡ | 7 * | 8 * | 2.1 * † | Apa saja * |
* padding-box
tidak didukung
† versi lama memerlukan -webkit
awalan (Chrome 1-9, Safari 3-5, Android 2.1-3.x)
‡ -moz
prefiks diperlukan hingga versi 28, tidak difiksasi pada 29.