mozilla

Revision 307863 of margin-left

  • Revision slug: CSS/margin-left
  • Revision title: margin-left
  • Revision id: 307863
  • 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 get all the remaining space. If there several auto valid for margin-left or margin-right, the remaining space is evenly distributed between all the auto value. This table summarizes the different cases:
{{cssxref("display")}} {{cssxref("float")}} {{cssxref("position")}} auto resolves to Comment
inline any static or relative 0 Inline layout mode
inline-block
block none static or relative 0, except 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
inline left or right static or relative 0 Block layout mode, but floating
inline-block
block
any, but flex or inline-flex any fixed or absolute 0, except if both margin-left and margin-right are set to auto, it is set to the value centering the border area inside the available width, if fixed. Absolutely positioned layout mode
flex any any 0, except if there is any positive horizontal free space, it is then evenly distributed to all horizontal auto margins. Flexbox layout mode
inline-flex

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>
<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 get all the remaining space. If there several <code>auto</code> valid for <code>margin-left</code> or <code>margin-right</code>, the remaining space is evenly distributed between all the <code>auto</code> value. This table summarizes the different cases:<br />
    <table>
      <thead>
        <tr>
          <th scope="col">{{cssxref("display")}}</th>
          <th scope="col">{{cssxref("float")}}</th>
          <th scope="col">{{cssxref("position")}}</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"><em>any</em></td>
          <td rowspan="2"><code>static</code> or <code>relative</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><code>static</code> or <code>relative</code></td>
          <td><code>0</code>, except 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>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 rowspan="3"><code>static</code> or <code>relative</code></td>
          <td colspan="1" rowspan="3"><code>0</code></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><em>any, but <code>flex</code></em> <em>or</em> <code>inline-flex</code></td>
          <td><em>any</em></td>
          <td><em><code>fixed</code></em> or <code>absolute</code></td>
          <td><code>0</code>, except 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 border area inside the available <code>width</code>, if fixed.</td>
          <td>Absolutely positioned layout mode</td>
        </tr>
        <tr>
          <td><code>flex</code></td>
          <td colspan="1" rowspan="2"><em>any</em></td>
          <td colspan="1" rowspan="2"><em>any</em></td>
          <td colspan="1" rowspan="2"><code>0</code>, except if there is any positive horizontal free space, it is then evenly distributed to all horizontal <code>auto</code> margins.</td>
          <td colspan="1" rowspan="2">Flexbox layout mode</td>
        </tr>
        <tr>
          <td><code>inline-flex</code></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