The max-width
CSS property sets the maximum width of an element. It prevents the used value of the width
property from becoming larger than the value specified by max-width
.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
max-width
overrides width
, but min-width
overrides max-width
.
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
<length>
- The maximum width as an absolute value.
<percentage>
- The maximum width, expressed as a percentage of the containing block's width.
Keyword values
none
- The width has no maximum value.
max-content
- The intrinsic preferred width.
min-content
- The intrinsic minimum width.
fill-available
- The containing block's width minus the horizontal margin, border, and padding. (Note that some browsers implement an ancient name for this keyword,
available
.) fit-content
- The same as
max-content
.
Formal syntax
<length> | <percentage> | none | max-content | min-content | fit-content | fill-available
Examples
In this example, the "child" will be either 150 pixels wide or the width of the "parent," whichever is smaller:
<div id="parent"> <div id="child"> Fusce pulvinar vestibulum eros, sed luctus ex lobortis quis. </div> </div>
#parent { background: lightblue; width: 300px; } #child { background: gold; width: 100%; max-width: 150px; }
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; }
Accessibility concerns
Ensure that elements set with a max-width
are not truncated and/or do not obscure other content when the page is zoomed to increase text size.
- MDN Understanding WCAG, Guideline 1.4 explanations
- Understanding Success Criterion 1.4.4 | W3C Understanding WCAG 2.0
Specifications
Specification | Status | Comment |
---|---|---|
CSS Intrinsic & Extrinsic Sizing Module Level 3 The definition of 'max-width' in that specification. |
Working Draft | Adds the max-content , min-content , fit-content , and fill-available keywords. (Both CSS3 Box and CSS3 Writing Modes drafts used to define these keywords, but are superseded by this spec.) |
CSS Transitions The definition of 'max-width' in that specification. |
Working Draft | Defines max-width as animatable. |
CSS Level 2 (Revision 1) The definition of 'max-width' in that specification. |
Recommendation | Initial definition. |
Initial value | none |
---|---|
Applies to | all elements but non-replaced inline elements, table rows, and row groups |
Inherited | no |
Percentages | refer to the width of the containing block |
Media | visual |
Computed value | the percentage as specified or the absolute length or none |
Animation type | a length, percentage or calc(); |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
max-width | Chrome Full support 1 | Edge Full support 12 | Firefox
Full support
1
| IE Full support 7 | Opera
Full support
4
| Safari Full support 1 | WebView Android Full support 4.4 | Chrome Android Full support 18 | Firefox Android
Full support
4
| Opera Android Full support Yes | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 |
fit-content | Chrome
Full support
46
| Edge No support No | Firefox
Partial support
3
| IE No support No | Opera Full support 44 | Safari
Full support
6.1
| WebView Android
Full support
46
| Chrome Android Full support 46 | Firefox Android
Partial support
4
| Opera Android Full support 43 | Safari iOS
Full support
7
| Samsung Internet Android Full support 5.0 |
max-content | Chrome
Full support
46
| Edge No support No | Firefox
Full support
66
| IE No support No | Opera Full support 44 | Safari
Full support
6.1
| WebView Android
Full support
46
| Chrome Android Full support 46 | Firefox Android
Full support
66
| Opera Android Full support 43 | Safari iOS
Full support
7
| Samsung Internet Android Full support 5.0 |
min-content | Chrome
Full support
46
| Edge No support No | Firefox
Full support
66
| IE No support No | Opera Full support 44 | Safari
Full support
6.1
| WebView Android Full support 46 | Chrome Android Full support 46 | Firefox Android
Full support
66
| Opera Android Full support 43 | Safari iOS
Full support
7
| Samsung Internet Android Full support 5.0 |
stretch | Chrome
Full support
22
| Edge No support No | Firefox No support No | IE No support No | Opera
Full support
15
| Safari No support No | WebView Android
Full support
4.4
| Chrome Android
Full support
25
| Firefox Android No support No | Opera Android
Full support
14
| Safari iOS No support No | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- Partial support
- Partial support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- See implementation notes.
- Uses a non-standard name.
- Uses a non-standard name.
- Requires a vendor prefix or different name for use.
- Requires a vendor prefix or different name for use.