margin-left

  • Revision slug: CSS/margin-left
  • Revision title: margin-left
  • Revision id: 307853
  • Created:
  • Creator: teoli
  • Is current revision? No
  • Comment

Revision Content

{{CSSRef()}}

Summary

Area on which CSS margin-left applyThe margin-left CSS property of an element sets the margin space required on the left side of a box associated with an element. A negative value is also allowed.

The vertical margins of two adjacent boxes may fuse. This is called margin collapsing.

In the rare cases where width is overconstrained (that is when all of width, margin-left, border, padding, the content area and margin-right are defined), margin-left is ignored, and will have the same calculated value as if the auto value was specified.

  • {{Xref_cssinitial()}} 0
  • Applies to all elements except those with table display types other than table-caption, table, and inline-table
  • {{Xref_cssinherited()}} no
  • Percentages refer to {{Cssxref("width")}} of closest block-level ancestor
  • Media {{Xref_cssvisual()}}
  • {{Xref_csscomputed()}} the percentage as specified or the absolute length

Syntax

Formal syntax: {{Xref_csslength()}} | {{Xref_csspercentage()}} | auto
margin-left: 10px;        /* An absolute length */
margin-left: 1em;         /* A length relative to the text size */
margin-left: 5%;          /* A margin relative to the nearest block container's width */
margin-left: auto;

margin-left: inherit;

Values

  •  
<length>
Is a {{xref_csslength()}} specifying a fixed width: it can be absolute width, e.g. in px, or a width relative to the text size, e.g. in em, or relative to the viewport size, e.g. in vh.
<percentage>
Is a {{xref_csspercentage()}} relative to the width of the nearest containing block.
auto
Is a keyword indicating that the left margin should be set to a suitable value, defined by the following table:
{{cssxref("display")}} {{cssxref("float")}} auto resolves to Comment
inline none 0 Inline layout mode
inline-block
block none   Block layout mode
inline left or right 0, but if both margin-left and margin-right are set to auto, it is set to the value centering the element inside its parent. Block layout mode, but floating
inline-block
block
       
       
       

Examples

.content { margin-left:   5%; }
.sidebox { margin-left: 10px; }
.logo    { margin-left: -5px; }

Specifications

Specification Status Comment
{{SpecName('CSS3 Box', '#the-margin', 'margin-left')}} {{Spec2('CSS3 Box')}} No significant change from CSS 2.1.
{{SpecName('CSS3 Transitions', '#animatable-css', 'margin-left')}} {{Spec2('CSS3 Transitions')}} Defines margin-left as animatable.
{{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-left')}} {{Spec2('CSS2.1')}} Like in CSS1, but removes its effect on inline elements.
{{SpecName('CSS1', '#margin-left', 'margin-left')}} {{Spec2('CSS1')}} Initial definition.

Browser compatibility

{{CompatibilityTable()}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 1.0 {{CompatGeckoDesktop("1")}} 3.0 3.5 1.0 (85)
auto value 1.0 {{CompatGeckoDesktop("1")}} 6.0 (strict mode) 3.5 1.0 (85)
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support 1.0 {{CompatGeckoMobile("1")}} 6.0 6.0 1.0

See also

  • {{CSS_Reference:Margin()}}

Revision Source

<div>
  {{CSSRef()}}</div>
<h2 id="Summary" name="Summary">Summary</h2>
<p><img alt="Area on which CSS margin-left apply" src="/files/4039/margin-left.svg" style="float: left; border-width: 1px; border-style: solid; margin-right: 1em; margin-bottom: 2em;" />The <code>margin-left</code> <a href="/en/CSS" title="CSS">CSS</a> property of an element sets the margin space required on the left side of a <a href="/en-US/docs/CSS/box_model" title="/en-US/docs/CSS/box_model">box</a> associated with an element. A negative value is also allowed.</p>
<p>The vertical margins of two adjacent boxes may fuse. This is called <a href="/en-US/docs/CSS/margin_collapsing" title="/en-US/docs/CSS/margin_collapsing"><em>margin collapsing</em></a>.</p>
<p>In the rare cases where width is overconstrained (that is when all of <code>width</code>, <code>margin-left</code>, <code>border</code>, <code>padding</code>, the content area and <code>margin-right</code> are defined), <code>margin-left</code> is ignored, and will have the same calculated value as if the <code>auto</code> value was specified.</p>
<ul class="cssprop">
  <li><dfn>{{Xref_cssinitial()}}</dfn> <code>0</code></li>
  <li><dfn>Applies to</dfn> all elements except those with table display types other than <code>table-caption</code>, <code>table</code>, and <code>inline-table</code></li>
  <li><dfn>{{Xref_cssinherited()}}</dfn> no</li>
  <li><dfn>Percentages</dfn> refer to {{Cssxref("width")}} of closest block-level ancestor</li>
  <li><dfn>Media</dfn> {{Xref_cssvisual()}}</li>
  <li><dfn>{{Xref_csscomputed()}}</dfn> the percentage as specified or the absolute length</li>
</ul>
<h2 id="Syntax" name="Syntax">Syntax</h2>
<pre class="twopartsyntaxbox">
Formal syntax: {{Xref_csslength()}} | {{Xref_csspercentage()}} | auto</pre>
<pre>
margin-left: 10px;        /* An absolute length */
margin-left: 1em;         /* A length relative to the text size */
margin-left: 5%;          /* A margin relative to the nearest block container's width */
margin-left: auto;

margin-left: inherit;
</pre>
<h3 id="Values" name="Values">Values</h3>
<ul>
  <li>&nbsp;</li>
</ul>
<dl>
  <dt>
    <code>&lt;length&gt;</code></dt>
  <dd>
    Is a {{xref_csslength()}} specifying a fixed width: it can be absolute width, e.g. in <code>px</code>, or a width relative to the text size, e.g. in <code>em</code>, or relative to the viewport size, e.g. in <code>vh</code>.</dd>
  <dt>
    <code>&lt;percentage&gt;</code></dt>
  <dd>
    Is a {{xref_csspercentage()}} relative to the <em>width</em> of the nearest containing block.</dd>
  <dt>
    <code>auto</code></dt>
  <dd>
    Is a keyword indicating that the left margin should be set to a suitable value, defined by the following table:
    <table>
      <thead>
        <tr>
          <th scope="col">{{cssxref("display")}}</th>
          <th scope="col">{{cssxref("float")}}</th>
          <th scope="col"><code>auto</code> resolves to</th>
          <th scope="col">Comment</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><code>inline</code></td>
          <td colspan="1" rowspan="2"><code>none</code></td>
          <td rowspan="2"><code>0</code></td>
          <td colspan="1" rowspan="2">Inline layout mode</td>
        </tr>
        <tr>
          <td><code>inline-block</code></td>
        </tr>
        <tr>
          <td><code>block</code></td>
          <td><code>none</code></td>
          <td>&nbsp;</td>
          <td>Block layout mode</td>
        </tr>
        <tr>
          <td><code>inline</code></td>
          <td colspan="1" rowspan="3"><code>left</code> or <code>right</code></td>
          <td colspan="1" rowspan="3"><code>0</code>, but if both <code>margin-left</code> and <code>margin-right</code> are set to <code>auto</code>, it is set to the value centering the element inside its parent.</td>
          <td colspan="1" rowspan="3">Block layout mode, but floating</td>
        </tr>
        <tr>
          <td><code>inline-block</code></td>
        </tr>
        <tr>
          <td><code>block</code></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </tbody>
    </table>
  </dd>
</dl>
<h2 id="Examples" name="Examples">Examples</h2>
<pre classs="brush:css;">
.content { margin-left:   5%; }
.sidebox { margin-left: 10px; }
.logo    { margin-left: -5px; }
</pre>
<h2 id="Specifications" name="Specifications">Specifications</h2>
<table class="standard-table">
  <thead>
    <tr>
      <th scope="col">Specification</th>
      <th scope="col">Status</th>
      <th scope="col">Comment</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>{{SpecName('CSS3 Box', '#the-margin', 'margin-left')}}</td>
      <td>{{Spec2('CSS3 Box')}}</td>
      <td>No significant change from CSS 2.1.</td>
    </tr>
    <tr>
      <td>{{SpecName('CSS3 Transitions', '#animatable-css', 'margin-left')}}</td>
      <td>{{Spec2('CSS3 Transitions')}}</td>
      <td>Defines <code>margin-left</code> as animatable.</td>
    </tr>
    <tr>
      <td>{{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-left')}}</td>
      <td>{{Spec2('CSS2.1')}}</td>
      <td>Like in CSS1, but removes its effect on inline elements.</td>
    </tr>
    <tr>
      <td>{{SpecName('CSS1', '#margin-left', 'margin-left')}}</td>
      <td>{{Spec2('CSS1')}}</td>
      <td>Initial definition.</td>
    </tr>
  </tbody>
</table>
<h2 id="Browser_Compatibility" name="Browser_Compatibility">Browser compatibility</h2>
<p>{{CompatibilityTable()}}</p>
<div id="compat-desktop">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Feature</th>
        <th>Chrome</th>
        <th>Firefox (Gecko)</th>
        <th>Internet Explorer</th>
        <th>Opera</th>
        <th>Safari (WebKit)</th>
      </tr>
      <tr>
        <td>Basic support</td>
        <td>1.0</td>
        <td>{{CompatGeckoDesktop("1")}}</td>
        <td>3.0</td>
        <td>3.5</td>
        <td>1.0 (85)</td>
      </tr>
      <tr>
        <td><code>auto</code> value</td>
        <td>1.0</td>
        <td>{{CompatGeckoDesktop("1")}}</td>
        <td>6.0 (strict mode)</td>
        <td>3.5</td>
        <td>1.0 (85)</td>
      </tr>
    </tbody>
  </table>
</div>
<div id="compat-mobile">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Feature</th>
        <th>Android</th>
        <th>Firefox Mobile (Gecko)</th>
        <th>IE Phone</th>
        <th>Opera Mobile</th>
        <th>Safari Mobile</th>
      </tr>
      <tr>
        <td>Basic support</td>
        <td>1.0</td>
        <td>{{CompatGeckoMobile("1")}}</td>
        <td>6.0</td>
        <td>6.0</td>
        <td>1.0</td>
      </tr>
    </tbody>
  </table>
</div>
<h2 id="See_also">See also</h2>
<ul>
  <li>{{CSS_Reference:Margin()}}</li>
</ul>
Revert to this revision