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-left sets the left margin of an element.

Overview table

Initial value
Depends on the particular element. Different elements have different default margins.
Applies to
All elements
Computed value
As specified, but with relative lengths converted into absolute pixel values.
CSS Object Model Property


  • margin-left: auto
  • margin-left: inherit
  • margin-left: length
  • margin-left: 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 left margin dependent on the space available.
Inherits the parent element’s specified margin-left width.


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

  • The first one has a margin-left of 2 centimeters, meaning that it is pushed over to the right by 2cm.
  • The second one has no margin-left of its own, to indicate the default position of the blocks.
  • The bottom block has a margin-left of -10% set on it, meaning that it is pushed over to the left by 10% of the parent element’s width.
<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-left 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-left: 2cm;

 .two {
   background-color: blue;

 .three {
   background-color: green;
   margin-left: -10%;

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 right margin set, and a floated element directly to the right of it has a left margin set, 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.).


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 Microsoft Internet Explorer 4.0 and 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 and later, apply the margin to an object, such as div or p, within the td. This property applies to inline elements, starting with Microsoft Internet Explorer 5.5. 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. 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