
Box Model di CSS adalah fondasi cara browser menghitung ukuran dan tata letak setiap elemen pada halaman web.
Halo teman-teman, semoga kalian sehat dan semangat belajar front-end! Pada artikel ini kodelyly.com akan membahas Box Model di CSS secara praktis agar kalian paham cara kerja content, padding, border, margin, serta pengaruhnya pada lebar dan tinggi elemen.
Box Model Di CSS
Secara default, setiap elemen HTML diperlakukan sebagai sebuah kotak. Kotak ini tersusun dari empat lapisan: content di tengah, diikuti padding, lalu border, dan paling luar margin. Memahami susunan ini penting untuk mencegah layout “melar” tak terduga dan memastikan desain responsif tetap rapi di berbagai ukuran layar.
Bagian_Bagian Box Model
| Bagian | Keterangan | Properti Utama |
|---|---|---|
| Content | Area isi tempat teks/gambar dirender. | width, height |
| Padding | Ruang di sekitar content di dalam border. | padding, padding-top/right/bottom/left |
| Border | Garis pembatas mengelilingi padding dan content. | border, border-width/style/color |
| Margin | Ruang di luar border yang memisahkan elemen dari elemen lain. | margin, margin-top/right/bottom/left |
Perhitungan total lebar elemen tradisional yang memakai content-box adalah: total width = width + padding kiri + padding kanan + border kiri + border kanan + margin kiri + margin kanan. Perhitungan tinggi bekerja serupa pada sumbu vertikal.
Box_sizing: Content_box Vs Border_box
Properti box-sizing mengubah cara browser menghitung ukuran elemen.
| Mode | Cara Menghitung | Kapan Dipakai |
|---|---|---|
| content-box (default) | width hanya untuk area content; padding dan border ditambahkan di luar. | Ketika kalian butuh kontrol penuh pemisahan content vs dekorasi. |
| border-box | width sudah mencakup content + padding + border, sehingga total lebar lebih mudah diprediksi. | Desain responsif modern, grid, dan komponen UI yang konsisten. |
Contoh praktis penerapan border-box secara global agar layout lebih stabil:
/* Terapkan ke seluruh dokumen */
*, *::before, *::after { box-sizing: border-box; }
html { font-family: system-ui, Arial, sans-serif; }
.card {
width: 300px; /* Sudah termasuk padding + border */
padding: 16px;
border: 2px solid #ddd;
margin: 12px auto;
}
Ilustrasi Perbedaan
Dengan content-box:
.box-a {
box-sizing: content-box;
width: 300px; /* hanya content */
padding: 20px; /* menambah total lebar */
border: 4px solid #333; /* menambah total lebar */
}
Dengan border-box:
.box-b {
box-sizing: border-box;
width: 300px; /* total = 300 termasuk padding + border */
padding: 20px;
border: 4px solid #333;
}
Tips Praktik Terbaik
- Terapkan
box-sizing: border-box;secara global untuk mempermudah kalkulasi layout. - Rencanakan padding dibanding margin saat ingin memperbesar ruang di dalam komponen agar area klik tetap luas.
- Hati-hati dengan margin collapse pada elemen blok bertumpuk; gunakan padding atau border tipis untuk mencegahnya jika perlu.
FAQ Box Model Di CSS
Berikut kumpulan pertanyaan yang paling sering muncul tentang Box Model di CSS. Kalian bisa langsung tempel di akhir artikel, termasuk versi Schema FAQ untuk SEO.
Pertanyaan & Jawaban
- Apa itu Box Model di CSS?
Box Model adalah cara browser menghitung ukuran dan jarak sebuah elemen berbasis empat lapisan: content, padding, border, dan margin. - Apa saja bagian-bagian Box Model dan fungsinya?
Content menampung isi; padding memberi ruang di dalam border; border membingkai elemen; margin memberi jarak dengan elemen lain. - Apa perbedaan padding dan margin?
Padding menambah ruang di dalam elemen (memperluas area klik/warna latar). Margin menambah jarak di luar elemen (memisahkan antar elemen). - Bagaimana cara menghitung total lebar/tinggi pada mode
content-box?
Total lebar =width + padding-left + padding-right + border-left + border-right + margin-left + margin-right. Tinggi dihitung serupa pada sumbu vertikal. - Apa bedanya
content-boxdanborder-boxpadabox-sizing?
content-box(default):widthhanya area konten.border-box:widthsudah mencakup konten + padding + border, sehingga total lebih mudah diprediksi. - Kapan sebaiknya memakai
border-box?
Hampir selalu pada layout modern responsif, komponen UI, dan grid agar ukuran tetap konsisten saat menambah padding/border. - Bagaimana menerapkan
border-boxsecara global?*, *::before, *::after { box-sizing: border-box; } - Apa itu margin collapse dan bagaimana mencegahnya?
Margin vertikal elemen blok yang berdekatan bisa “menyatu”. Cegah dengan memberi padding/border tipis pada kontainer, atau ubah konteks layout (mis.overflow: autoataudisplay: flow-root). - Kapan memilih margin dibanding padding?
Gunakan margin untuk jarak antar elemen; gunakan padding saat ingin memperbesar ruang internal dan area interaksi komponen. - Bagaimana Box Model memengaruhi desain responsif?
Denganborder-box,widthyang ditetapkan sudah final, sehingga grid/kolom lebih stabil di berbagai viewport. - Bagaimana men-debug Box Model di DevTools?
Buka panel Elements/Inspector lalu lihat tab Computed/Box Model untuk memeriksa nilai content, padding, border, dan margin secara visual. - Apakah perilaku Box Model sama pada elemen inline?
Elemen inline tidak memengaruhi layout secara blok; margin/padding horizontal bekerja normal, sementara vertikalnya terbatas pada tinggi baris. - Apakah
outlinememengaruhi perhitungan ukuran elemen?
Tidak.outlinetidak mengubah ukuran box, berbeda denganborderyang masuk perhitungan. - Contoh singkat komponen yang stabil ukurannya
.card { width: 300px; /* total termasuk padding + border */ padding: 16px; border: 2px solid #ddd; box-sizing: border-box; margin: 12px auto; }
Kesimpulan
Box Model di CSS menentukan bagaimana ukuran dan jarak elemen dihitung. Dengan memahami lapisan content–padding–border–margin serta memilih box-sizing yang tepat (seringnya border-box), kalian bisa membangun layout responsif yang rapi dan mudah dipelihara. Sekian artikel dari kodelyly.com, semoga bermanfaat dan sampai jumpa di pembahasan CSS berikutnya!