Summary
The max-width
property is used to set the maximum width of a given element. It prevents the used value of the {{ Cssxref("width") }} property from becoming larger than the value specified for max-width
.
{{ Cssxref("max-width") }} overrides {{cssxref("width")}}, but {{ Cssxref("min-width") }} overrides {{ Cssxref("max-width") }}.
{{cssinfo}}
Syntax
/* <length> value */ max-width: 3.5em; /* <percentage> value */ max-width: 75%; /* Keyword values */ max-width: none; max-width: max-content; max-width: min-content; max-width: fit-content; max-width: fill-available; /* Global values */ max-width: inherit; max-width: initial; max-width: unset;
Values
none
- The width has no maximum value.
<length>
- See {{cssxref("<length>")}} for possible units.
<percentage>
- Specified as a {{cssxref("<percentage>")}} of containing block's width.
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()}}- The same as
max-content.
Formal syntax
{{csssyntax}}
Examples
In this example, the "child" <div> has its width property set so that it will use the full width of the parent <div> but the max-width property constrains its width to 150px.
<div id="parent"> <div id="child"> The Mozilla community produces a lot of great software. </div> </div>
#parent { width: 300px; } #child { background: gold; width: 100%; max-width: 150px; }
{{EmbedLiveSample("basic-max-width-demo", 350, 100)}}
The fit-content value can be used to set the width of an element based on the intrinsic size required by its content:
#parent { background: lightblue; width: 300px; } #child { background: gold; width: 100%; max-width: -moz-fit-content; max-width: -webkit-fit-content; }
{{EmbedLiveSample("fit-content-demo", 400, 100)}}
Specifications
Specification | Status | Comment |
---|---|---|
{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'max-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 Transitions', '#animatable-css', 'max-width') }} | {{ Spec2('CSS3 Transitions') }} | Defines max-width as animatable. |
{{ SpecName('CSS2.1', 'visudet.html#min-max-widths', 'max-width') }} | {{ Spec2('CSS2.1') }} | Initial definition |
Browser compatibility
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 1.0 | {{CompatGeckoDesktop("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() }} |
{{ CompatNo() }} [3] | {{CompatGeckoDesktop("1.9")}}{{property_prefix("-moz")}} [2] | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} [3] |
Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
[1] CSS 2.1 explicitly leaves the behavior of max-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 Sizing.
[3] WebKit implements an earlier proposal for setting the height to an intrinsic height: the keywords intrinsic
, instead of max-content
, and min-intrinsic
, instead of min-content
There is no equivalent for fill-available
or fit-content
.
See also
- {{ Cssxref("width") }}, {{ Cssxref("min-width") }}, {{ Cssxref("max-height") }}
- The box model, {{ Cssxref("box-sizing") }}