RivoCode

HTML & CSS · The Box Model · Lesson 8 of 25

Width, Height, and Box-Sizing

Concept

Width, Height, and Box-Sizing

box-sizing: border-box makes width and height include padding and border, which avoids a lot of layout surprises.

Without border-box (the default, content-box), padding and border are added on top of the width you set, so a 200px box with 20px padding actually takes up 240px — which trips up almost every beginner at least once.

By the end of this lesson
  • Explain the core idea behind Width, Height, and Box-Sizing.
  • Predict output before running a change.
  • Test one realistic and one unusual input.
  • Use the result to make the next decision.
How to study this page
  1. 1. Read one concept.
  2. 2. Change the example.
  3. 3. Run, compare, and explain.
  4. 4. Complete the challenge below.
Syntax
* {
  box-sizing: border-box;
}
ExampleRunnable
.box {
  width: 200px;
  padding: 20px;
  box-sizing: border-box;
}
Try it Yourself »
Applying border-box globally
*, *::before, *::after {
  box-sizing: border-box;
}
Note: Most real-world stylesheets apply border-box to every element up front, right at the top of the CSS file.
Self-check before continuing

Without looking at the example, describe what changes when you modify one input in Width, Height, and Box-Sizing. Then reopen the editor and prove your explanation with a small test.

You are ready to continue when you can predict, test, and explain the result.

Your turn

Compare how a 200px box looks with and without box-sizing: border-box.

Loading editor…

Console

Output will appear here...