min-width

  • Revision slug: Web/CSS/min-width
  • Revision title: min-width
  • Revision id: 394417
  • Created:
  • Creator: Sheppy
  • Is current revision? No
  • Comment Moved From CSS/min-width to Web/CSS/min-width

Revision Content

{{ CSSRef() }}

Summary

The min-width CSS property is used to set the minimum width of a given element. It prevents the used value of the {{ Cssxref("width") }} property from becoming smaller than the value specified for min-width.

The value of min-width overrides both {{ Cssxref("max-width") }} and {{ Cssxref("width") }}.

{{cssbox("min-width")}}

Syntax

Formal syntax: {{csssyntax("min-width")}}
min-width: 3.5em
min-width: 10%
min-width: max-content
min-width: min-content
min-width: fit-content
min-width: fill-available

min-width: inherit

Values

<length>
The fixed minimum width. See {{ Xref_csslength() }} for possible units. Negative values make the declaration invalid.
<percentage>
The fixed minimum width expressed as a {{ Xref_csspercentage() }} of containing block's width. Negative values make the declaration invalid.
max-content {{ experimental_inline() }}
The intrinsic preferred width.
min-content {{ experimental_inline() }}
The intrinsic minimum width.
fill-available{{ experimental_inline() }}
The containing block width minus horizontal margin, border and padding. Some browsers implement an ancient name for this keyword, available.
fit-content {{ experimental_inline() }}
Defined as min(max-content, max(min-content, fill-available).

Examples

table { min-width: 75%; }

form { min-width: 0; }

Specifications

Specification Status Comment
{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'min-width') }} {{ Spec2('CSS3 Sizing') }} Adds the max-content, min-content, fit-content, and fill-available keywords.
Both CSS3 Box and CSS3 Writing Modes drafts defined at some point these keywords. These drafts are superseded by this spec.
{{ SpecName('CSS3 Flexbox', '#min-auto', 'min-width') }} {{ Spec2('CSS3 Flexbox') }} An earlier revision of the spec added the auto keyword and used it as the initial value. The CSSWG subsequently resolved to revert this change, however. As of March 29, 2013, the latest Editor's Draft doesn't modify the min-width property anymore (i.e. it no longer introduces the auto value).
{{ SpecName('CSS3 Transitions', '#animatable-css', 'min-width') }} {{ Spec2('CSS3 Transitions') }} Defines min-width as animatable.
{{ SpecName('CSS2.1', 'visudet.html#min-max-widths', 'min-width') }} {{ Spec2('CSS2.1') }} Initial definition.

Browser compatibility

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 1.0 1.0 (1.0) 7.0 4.0 2.0.2 (416), buggy before
applies to <table> [1] {{ CompatNo() }} {{ CompatVersionUnknown() }} {{ CompatNo() }} {{ CompatVersionUnknown() }} {{ CompatNo() }}
max-content, min-content, fit-content, and fill-available {{ experimental_inline() }} 24.0 {{property_prefix("-webkit")}} [3] {{ CompatGeckoDesktop("1.9") }} {{ property_prefix("-moz") }} [2] {{ CompatNo() }} {{ CompatNo() }} {{ CompatNo() }} [3]
auto{{obsolete_inline(22)}} 21.0 {{ CompatGeckoDesktop("16.0") }} {{ CompatNo() }} 12.10 {{ CompatNo() }}
auto as initial value{{obsolete_inline(22)}} 21.0 {{ CompatGeckoDesktop("18.0") }} {{ CompatNo() }} 12.10 {{ CompatNo() }}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }}

Notes

[1] CSS 2.1 explicitly leaves the behavior of min-width with {{ HTMLElement("table") }} undefined. Therefore any behavior is CSS2.1-compliant; newer CSS specifications may define this behavior, so Web developers shouldn't rely on a specific one now.

[2] Gecko experimentally implements the definitions given in CSS3 Basic Box. This one defines available and not fill-available. Also the definition of fit-content is simpler than in CSS3 Intrinsic.

[3] WebKit also implements an earlier proposal, the keyword intrinsic.

See also

  • {{ Cssxref("width") }}, {{ Cssxref("max-width") }}, {{ Cssxref("min-height") }}
  • The box model, {{ Cssxref("box-sizing") }}

Revision Source

<p>{{ CSSRef() }}</p>
<h2 id="Summary">Summary</h2>
<p>The <code>min-width</code> CSS property is used to set the minimum width of a given element. It prevents the used value of the {{ Cssxref("width") }} property from becoming smaller than the value specified for <code>min-width</code>.</p>
<p>The value of <code>min-width </code>overrides both {{ Cssxref("max-width") }} and {{ Cssxref("width") }}.</p>
<p>{{cssbox("min-width")}}</p>
<h2 id="Syntax">Syntax</h2>
<pre class="twopartsyntaxbox">
<a href="/en-US/docs/CSS/Value_definition_syntax" title="CSS/Value_definition_syntax">Formal syntax</a>: {{csssyntax("min-width")}}</pre>
<pre>
min-width: 3.5em
min-width: 10%
min-width: max-content
min-width: min-content
min-width: fit-content
min-width: fill-available

min-width: inherit
</pre>
<h3 id="Values">Values</h3>
<dl>
  <dt>
    <code>&lt;length&gt;</code></dt>
  <dd>
    The fixed minimum width. See {{ Xref_csslength() }} for possible units. Negative values make the declaration invalid.</dd>
  <dt>
    <code>&lt;percentage&gt;</code></dt>
  <dd>
    The fixed minimum width expressed as a {{ Xref_csspercentage() }} of containing block's width. Negative values make the declaration invalid.</dd>
  <dt>
    <code>max-content</code> {{ experimental_inline() }}</dt>
  <dd>
    The intrinsic preferred width.</dd>
  <dt>
    <code>min-content</code> {{ experimental_inline() }}</dt>
  <dd>
    The intrinsic minimum width.</dd>
  <dt>
    <code>fill-available</code>{{ experimental_inline() }}</dt>
  <dd>
    The containing block width minus horizontal margin, border and padding. Some browsers implement an ancient name for this keyword, <code>available</code>.</dd>
  <dt>
    <code>fit-content</code> {{ experimental_inline() }}</dt>
  <dd>
    Defined as <code>min(max-content, max(min-content, fill-available)</code>.</dd>
</dl>
<h2 id="Examples">Examples</h2>
<pre class="brush:css;">
table { min-width: 75%; }

form { min-width: 0; }
</pre>
<h2 id="Specifications">Specifications</h2>
<table class="standard-table">
  <tbody>
    <tr>
      <th scope="col">Specification</th>
      <th scope="col">Status</th>
      <th scope="col">Comment</th>
    </tr>
    <tr>
      <td>{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'min-width') }}</td>
      <td>{{ Spec2('CSS3 Sizing') }}</td>
      <td>Adds the <code>max-content</code>, <code>min-content</code>, <code>fit-content</code>, and <code>fill-available</code> keywords.<br />
        <em>Both CSS3 Box and CSS3 Writing Modes drafts defined at some point these keywords. These drafts are superseded by this spec.</em></td>
    </tr>
    <tr>
      <td>{{ SpecName('CSS3 Flexbox', '#min-auto', 'min-width') }}</td>
      <td>{{ Spec2('CSS3 Flexbox') }}</td>
      <td>An <a href="http://www.w3.org/TR/2012/CR-css3-flexbox-20120918/">earlier revision of the spec</a> added the <code>auto</code> keyword and used it as the initial value. The CSSWG subsequently resolved to revert this change, however. As of March 29, 2013, the latest <a href="http://dev.w3.org/csswg/css-flexbox/">Editor's Draft</a> doesn't modify the <code>min-width</code> property anymore (i.e. it no longer introduces the <code>auto</code> value).</td>
    </tr>
    <tr>
      <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'min-width') }}</td>
      <td>{{ Spec2('CSS3 Transitions') }}</td>
      <td>Defines <code>min-width</code> as animatable.</td>
    </tr>
    <tr>
      <td>{{ SpecName('CSS2.1', 'visudet.html#min-max-widths', 'min-width') }}</td>
      <td>{{ Spec2('CSS2.1') }}</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>1.0 (1.0)</td>
        <td>7.0</td>
        <td>4.0</td>
        <td>2.0.2 (416), buggy before</td>
      </tr>
      <tr>
        <td>applies to <code>&lt;table&gt; </code>[1]</td>
        <td>{{ CompatNo() }}</td>
        <td>{{ CompatVersionUnknown() }}</td>
        <td>{{ CompatNo() }}</td>
        <td>{{ CompatVersionUnknown() }}</td>
        <td>{{ CompatNo() }}</td>
      </tr>
      <tr>
        <td><code>max-content</code>, <code>min-content</code>, <code>fit-content</code>, and <code>fill-</code><code>available</code> {{ experimental_inline() }}</td>
        <td>24.0 {{property_prefix("-webkit")}} [3]</td>
        <td>{{ CompatGeckoDesktop("1.9") }} {{ property_prefix("-moz") }} [2]</td>
        <td>{{ CompatNo() }}</td>
        <td>{{ CompatNo() }}</td>
        <td>{{ CompatNo() }} [3]</td>
      </tr>
      <tr>
        <td><code>auto</code>{{obsolete_inline(22)}}</td>
        <td>21.0</td>
        <td>{{ CompatGeckoDesktop("16.0") }}</td>
        <td>{{ CompatNo() }}</td>
        <td>12.10</td>
        <td>{{ CompatNo() }}</td>
      </tr>
      <tr>
        <td><code>auto</code> as initial value{{obsolete_inline(22)}}</td>
        <td>21.0</td>
        <td>{{ CompatGeckoDesktop("18.0") }}</td>
        <td>{{ CompatNo() }}</td>
        <td>12.10</td>
        <td>{{ CompatNo() }}</td>
      </tr>
    </tbody>
  </table>
</div>
<div id="compat-mobile">
  <table class="compat-table">
    <tbody>
      <tr>
      </tr>
      <tr>
        <th>Feature</th>
        <th>Android</th>
        <th>Chrome for Android</th>
        <th>Firefox Mobile (Gecko)</th>
        <th>IE Mobile</th>
        <th>Opera Mobile</th>
        <th>Safari Mobile</th>
      </tr>
      <tr>
        <td>Basic support</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
      </tr>
    </tbody>
  </table>
</div>
<h3 id="Notes">Notes</h3>
<p>[1] CSS 2.1 explicitly leaves the behavior of <code>min-width</code> with {{ HTMLElement("table") }} undefined. Therefore any behavior is CSS2.1-compliant; newer CSS specifications may define this behavior, so Web developers shouldn't rely on a specific one now.</p>
<p>[2] Gecko experimentally implements the definitions given in CSS3 Basic Box. This one defines <code>available</code> and not <code>fill-available</code>. Also the definition of <code>fit-content</code> is simpler than in CSS3 Intrinsic.</p>
<p>[3] WebKit also implements an earlier proposal, the keyword <code>intrinsic</code>.</p>
<h2 id="See_also">See also</h2>
<ul>
  <li>{{ Cssxref("width") }}, {{ Cssxref("max-width") }}, {{ Cssxref("min-height") }}</li>
  <li>The <a href="/en-US/docs/CSS/box_model" title="en/CSS/box_model">box model</a>, {{ Cssxref("box-sizing") }}</li>
</ul>
Revert to this revision