The Box Model in CSS - How Is the Real Element Size Calculated?

The Box Model is the most important concept in CSS. Once you understand it, you will know why elements create space and why sizes look bigger than expected.

If you are looking for what the Box Model is in CSS, the difference between padding and margin, or how to calculate element size in CSS, this lesson is the foundation you need.

What Is the Box Model in CSS?

The browser treats every HTML element as a box made of four layers:

  1. Content: the actual content (text/image).
  2. Padding: inner space around the content.
  3. Border: the line around the padding.
  4. Margin: outer space that separates the box from others.
Simple definition: The Box Model in CSS is how the browser calculates element size using Content + Padding + Border + Margin.

Result in the browser (visual diagram):

Margin
Border
Padding
Content

The Four Layers Explained

1) Content in CSS

This is where the text or image appears. When you set width and height, you are controlling the content area by default.

2) Padding in CSS

Inner space that adds breathing room around the content. It increases the visible box size when using box-sizing: content-box.

3) Border in CSS

The outline around the element. It has thickness, color, and style (solid, dashed, etc.).

4) Margin in CSS

Outer space between boxes. It does not affect the background because it is outside the element.

Practical Example: How Is Total Size Calculated?

.box {
    width: 200px;
    padding: 20px;
    border: 5px solid #0ea5e9;
    margin: 10px;
}

What does this code do? It creates a box with 200px content width plus padding, border, and outer margin.

Line by line:

  • width: 200px: content width only.
  • padding: 20px: 20px left + 20px right.
  • border: 5px: 5px left + 5px right.
  • margin: 10px: 10px left + 10px right (outer space).

Correct calculation (horizontal):

200 + 40 + 10 + 20 = 270px

Expected result: the element takes 270px of total horizontal space, not 200px.

Common mistake: assuming width is always the final size.

Result in the browser:

Box Model box

box-sizing in CSS (Very Important)

By default, CSS uses content-box, which means width does not include padding or border. In most modern projects, we use border-box to make sizing easier.

* {
    box-sizing: border-box;
}

What does this code do? It makes width/height include content + padding + border.

Expected result: much easier layout calculations.

Common mistake: forgetting border-box and then wondering why columns break.

Best practice in CSS: start most projects with * { box-sizing: border-box; }.

Padding vs Margin in CSS

Property Where It Is Affects Background? Common Use
padding Inside the element Yes (part of the background) Add inner space
margin Outside the element No Separate elements

Common Mistakes with the Box Model

1) Ignoring padding/border in width calculations: causes broken layouts.

2) Confusing padding and margin: results in odd spacing.

3) Not using border-box in large projects: makes layout harder to manage.

FAQ - Common Search Questions

What is the Box Model in CSS?

It is the model that explains each element as content, padding, border, and margin.

What is the difference between padding and margin in CSS?

Padding is inside the element, margin is outside between elements.

How do I calculate the real size of an element in CSS?

Add: content width + left/right padding + left/right border + left/right margin.

What is the purpose of box-sizing: border-box in CSS?

It makes sizing easier because the width includes padding and border.

Why does a div with width: 100% overflow in CSS?

Usually because padding or border is added with content-box. The fix is often: box-sizing: border-box.

Try it now: create a box, set a width, then add padding and border and observe how the total size changes.
Great job! You now understand the most important concept in CSS: the Box Model. In the next lesson we will dive into padding in detail.
Smart Editor

Write code and see the result instantly

Try it free