This page is Ready to Use

Notice: The WebPlatform project, supported by various stewards between 2012 and 2015, has been discontinued. This site is now available on github.



margin-top sets the top margin of an element.

Overview table

Initial value
Depends on the particular element. Different elements have different default margins.
Applies to
All elements except elements with table display types other than table-caption, table, and inline-table.
Computed value
As specified, but with relative lengths converted into absolute pixel values.
CSS Object Model Property


  • margin-top: auto
  • margin-top: inherit
  • margin-top: length
  • margin-top: percentage


Specifies a fixed length, using any standard CSS length units . Negative Values are allowed.
A percentage of the width of the containing block. Negative values are allowed. (Even though this is margin-top, the browser will take the percentage from the width, not the height of the containing block.)
The browser calculates a bottom margin dependent on the space available.
Inherits the parent element’s specified margin-top width.


In this example there are three blocks, styled identically except for their margin-top values:

  • The first one has a margin-top of 2 centimeters, meaning that it is pushed down by 2cm, leaving a gap at the top of the content.
  • The second one has no margin-top of its own.
  • The bottom block has a margin-top of -1em set on it, meaning that it is pushed up to overlap the second block slightly.
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>

View live example

CSS applied to the HTML shown in the first example.

 * margin-bottom examples

 * {
   margin: 0;

div {
  width: 200px;
  height: 100px;
  background: linear-gradient(rgba(0,0,0,0.25), rgba(0,0,0,0));
  border-radius: 10px;

.one {
  background-color: red;
  margin-top: 2cm;

.two {
  background-color: blue;

.three {
  background-color: green;
  margin-top: -1em;

View live example


  • When calculating the height and width of an element, DO NOT include the margins in your calculations (i.e. include everything else: content area, padding, and border). However, DO include margin size when calculating available space within an element’s containing element.
  • When two margins collide, for example when one block level element has a bottom margin set, immediately followed by another block level element with a top margin, the larger of the two margins remains, and the smaller one collapses and disappears.
  • Margins are always transparent.

Best Practices

  • When possible, use margin shorthand (i.e. {margin: 10px 15px 20px 15px;}) to specify margin-widths rather than writing out each margin’s specifications as this clutters code and makes it difficult to read. Use margin-bottom if there is a specific reason to call attention to it (e.g. one element has a different bottom margin than the rest in its class, etc.).


As of Microsoft Internet Explorer 4.0 or later, you can specify possible length values relative to the height of the element’s font (em) or the height of the letter “x” (ex). In Microsoft Internet Explorer 3.0, the specified margin value is added to the default value of the object. In Internet Explorer 4.0 or later, the margin value is absolute. The margin properties do not work with the td and tr objects in Internet Explorer 4.0, but they do work in Internet Explorer 3.0. To set margins in the cell for Internet Explorer 4.0 or later, apply the margin to an object, such as div or p, within the td. As of Microsoft Internet Explorer 5.5, this property applies to inline elements. With earlier versions of Windows Internet Explorer, inline elements must have an absolute position or layout to use this property. Element layout is set by providing a value for the height property or the width property. For inline elements, the value of this property is used to compute the border area of a surrounding inline element, if present. This value does not contribute to the height of a line. Negative margins are supported, except for top and bottom margins on inline objects.

Standards information

Related specifications

W3C Recommendation

See also

Related articles

Box Model

Related pages