Lesson 1: Understanding the Box Model in CSS

Overview

Most HTML elements are containers. Consider some of the HTML elements we've used so far: body, p, h1, h2, div, ul, ol, li, table, th, td. Each of these is a container, or box. Each box has three layers that surround its content. The layers are, in order from inside to outside:

In this lesson you will learn more about the box model, and how to work with it when applying styles to content using CSS.

Learner Outcomes

At the completion of this exercise:

More on the Box Model

The following illustration shows the various layers in the box model:

Illustration of the box model, showing (from inside to out) content, padding, border, and margin

The size of each of the layers in the box model can be specified using the usual CSS units of measure (em, %, and px).

For example, consider the following <p>, which is wrapped inside a <div>:

  <div>
    <p>This is a paragraph. It is a very short paragraph.</p>
  </div>

We can apply the following CSS to the paragraph tag in order to control the size of the padding, border, and margin of the paragraph:

  div { 
    background-color: red;
    padding: 0;
    border: 1px solid black;
    margin: 0;
  }
  p { 
    background-color: white;
    padding: 1em;
    border-width: 10px; 
    border-style: solid;
    border-color: blue;
    margin: 10px !important;
   }   

Here's what it looks like:

This is a paragraph. It is a very short paragraph.

Here are a few tips:

Activities

Paragraph Text

All HTML elements can be considered as boxes. In CSS, the term "box model" is used when talking about design and layout. The CSS box model is essentially a box that wraps around HTML elements, and it consists of: margins, borders, padding, and the actual content. The box model allows us to add a border around elements, and to define space between elements.

Handouts/Online Documents

All done?

Proceed to Lesson 2.