Darryl Hein Darryl Hein - 6 months ago 46
CSS Question

What do margin:5px 0; and margin:5px 0 0; mean?


margin:5px 0;
margin:5px 0 0 0;
margin:5px 0 5px 0;

margin:5px 0 0;
margin:5px 0 0 0;

Same for padding of course.

Also, is it consistent across all browsers (including IE6)?


According to Box Model:

  • If there is only one value, it applies to all sides.
  • If there are two values, the top and bottom margins are set to the first value and the right and left margins are set to the second.
  • If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third.
  • If there are four values, they apply to the top, right, bottom, and left, respectively.
body { margin: 2em }         /* all margins set to 2em */
body { margin: 1em 2em }     /* top & bottom = 1em, right & left = 2em */
body { margin: 1em 2em 3em } /* top=1em, right=2em, bottom=3em, left=2em */

This is defined by the CSS standard, so it should be consistent across all browsers that implements CSS correctly. For browser compatibilities, check out blooberry's CSS Support History and quirksmode. According to blooberry, margin was first implemented in IE3, so IE6 should be fine.