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.

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, expressed as a <length>.
<percentage>
The maximum width, expressed as a <percentage> of the containing block's width.

Keyword values

none
The width has no maximum value. (default)
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. 

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 valuenone
Applies toall elements but non-replaced inline elements, table rows, and row groups
Inheritedno
Percentagesrefer to the width of the containing block
Mediavisual
Computed valuethe percentage as specified or the absolute length or none
Animation typea length, percentage or calc();
Canonical orderthe unique non-ambiguous order defined by the formal grammar

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 1Edge Full support 12Firefox Full support 1
Notes
Full support 1
Notes
Notes CSS 2.1 leaves the behavior of max-width with table undefined. Firefox supports applying max-width to table elements.
IE Full support 7Opera Full support 4
Notes
Full support 4
Notes
Notes CSS 2.1 leaves the behavior of max-width with table undefined. Opera supports applying max-width to table elements.
Safari Full support 2WebView Android ? Chrome Android ? Edge Mobile Full support YesFirefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
fit-content, max-content, and min-content
Experimental
Chrome No support No
Notes
No support No
Notes
Notes Chrome implements an earlier proposal for setting width to an intrinsic width: the keywords intrinsic (instead of max-content), and min-intrinsic (instead of min-content). There is no equivalent for stretch or fit-content.
Edge No support NoFirefox Full support 3
Prefixed Notes
Full support 3
Prefixed Notes
Prefixed Implemented with the vendor prefix: -moz-
Notes Firefox implements the definitions given in CSS3 Basic Box. This defines available and not fit-available. Also, the definition of fit-content is simpler than in CSS3 Sizing.
IE No support NoOpera No support NoSafari No support No
Notes
No support No
Notes
Notes Safari implements an earlier proposal for setting width to an intrinsic width: the keywords intrinsic (instead of max-content), and min-intrinsic (instead of min-content). There is no equivalent for stretch or fit-content.
WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android No support No
stretch
Experimental
Chrome Full support 22
Alternate Name
Full support 22
Alternate Name
Alternate Name Uses the non-standard name: -webkit-fill-available
Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android Full support 37
Alternate Name
Full support 37
Alternate Name
Alternate Name Uses the non-standard name: -webkit-fill-available
Chrome Android Full support 25
Alternate Name
Full support 25
Alternate Name
Alternate Name Uses the non-standard name: -webkit-fill-available
Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android No support No

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
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.

See also