everything you ever wanted to know about the basics of CSS

Chapter 7 : CSS Margins

Inherited: No

As you may have guessed, the margin property declares the margin between an (X)HTML element and the elements around it. The margin property can be set for the top, left, right and bottom of an element. (see example below)

  margin-top: length percentage or auto;
  margin-left: length percentage or auto;
  margin-right: length percentage or auto;
  margin-bottom: length percentage or auto;

As you can also see in the above example you have 3 choices of values for the margin property

  • length
  • percentage
  • auto

You can also declare all the margins of an element in a single property as follows:

  margin: 10px 10px 10px 10px;

If you declare all 4 values as I have above, the order is as follows:

  1. top
  2. right
  3. bottom
  4. left

If only one value is declared, it sets the margin on all sides. (see below)

  margin: 10px;

If you only declare two or three values, the undeclared values are taken from the opposing side. (see below)

  margin: 10px 10px; /* 2 values */
  margin: 10px 10px 10px; /* 3 values */

You can set the margin property to negative values. If you do not declare the margin value of an element, the margin is 0 (zero).

  margin: -10px;

Elements like paragraphs have default margins in some browsers, to combat this set the margin to 0 (zero).

  p {margin: 0;}

Note: You do not have to add px (pixels) or whatever units you use, if the value is 0 (zero).

You can see in the example below, the elements for this site are set to be 20px (pixels) from the body

  margin: 20px;
  background: #eeeeee;
  font-size: small;
  font-family: Tahoma, Arial, “Trebuchet MS”, Helvetica, sans-serif;
  text-align: left;

Back to top