Summary
The min-width
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") }}.
{{cssinfo}}
Syntax
/* <length> value */ min-width: 3.5em; /* <percentage> value */ min-width: 10%; /* Keyword values */ min-width: max-content; min-width: min-content; min-width: fit-content; min-width: fill-available; /* Global values */ min-width: inherit; min-width: initial; min-width: unset;
Values
<length>
- The fixed minimum width. See {{cssxref("<length>")}} for possible units. Negative values make the declaration invalid.
<percentage>
- The fixed minimum width expressed as a {{cssxref("<percentage>")}} of containing block's width. Negative values make the declaration invalid.
auto
- The default minimum size for flex items, providing a more reasonable default than 0 for other layouts.
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)
.
Formal syntax
{{csssyntax}}
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. (At some times in the past, both CSS3 Box and CSS3 Writing Modes drafts defined these keywords. These drafts has been superseded by this specification.) |
{{ SpecName('CSS3 Flexbox', '#min-size-auto', 'min-width') }} | {{ Spec2('CSS3 Flexbox') }} | Added the auto keyword and used it as the initial 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 |
21.0 [4] | {{ CompatGeckoDesktop("16.0") }} [4] Removed in {{ CompatGeckoDesktop("22.0") }} Reintroduced in {{CompatGeckoDesktop("34.0")}} with the new behavior defined by the spec. |
{{ CompatNo() }} | 12.10 [6] | {{ CompatNo() }} |
auto as initial value{{obsolete_inline()}} |
21.0 | {{ CompatGeckoDesktop("18.0") }} Removed in {{ CompatGeckoDesktop("22.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() }} |
applies to <table> [1] |
{{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
max-content , min-content , fit-content , and fill- available {{ experimental_inline() }} |
{{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
auto |
{{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
auto as initial value{{obsolete_inline()}} |
{{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
[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
.
[4] These implementations where implementing a slightly simpler behavior for this keyword: it computed to min-content
on flex items, and it computes to 0
on everything else.
See also
- {{ Cssxref("width") }}, {{ Cssxref("max-width") }}, {{ Cssxref("min-height") }}
- The box model, {{ Cssxref("box-sizing") }}