The max-height CSS property sets the maximum height of an element. It prevents the used value of the height property from becoming larger than the value specified for max-height.

max-height overrides height, but min-height overrides max-height.

Syntax

/* <length> value */
max-height: 3.5em;

/* <percentage> value */
max-height: 75%;

/* Keyword values */
max-height: none;
max-height: max-content;
max-height: min-content;
max-height: fit-content;
max-height: fill-available;

/* Global values */
max-height: inherit;
max-height: initial;
max-height: unset;

Values

<length>
The maximum height as an absolute value.
<percentage>
The maximum height, expressed as a percentage of the containing block's height.

Keyword values

none
The height has no maximum value.
max-content 
The intrinsic preferred height.
min-content 
The intrinsic minimum height.
fill-available 
The containing block's height minus the vertical 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

table { max-height: 75%; }

form { max-height: none; }

Accessibility concerns

Ensure that elements set with a max-height 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-height' 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-height' in that specification.
Working Draft Defines max-height as animatable.
CSS Level 2 (Revision 1)
The definition of 'max-height' in that specification.
Recommendation Initial definition.

Initial valuenone
Applies toall elements but non-replaced inline elements, table columns, and column groups
Inheritedno
PercentagesThe percentage is calculated with respect to the height of the generated box's containing block. If the height of the containing block is not specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the percentage value is treated as none.
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
max-heightChrome Full support 18Edge Full support 12Firefox Full support 1
Notes
Full support 1
Notes
Notes CSS 2.1 leaves the behavior of max-height with table undefined. Firefox supports applying max-height to table elements.
IE Full support 7Opera Full support 7
Notes
Full support 7
Notes
Notes CSS 2.1 leaves the behavior of max-height with table undefined. Opera supports applying max-height to table elements.
Safari Full support 1WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
max-contentChrome Full support 46Edge No support NoFirefox Full support 66IE No support NoOpera Full support 44Safari Full support YesWebView Android Full support 46Chrome Android Full support 46Edge Mobile No support NoFirefox Android Full support 66Opera Android Full support 44Safari iOS Full support YesSamsung Internet Android Full support 5.0
min-contentChrome Full support 46Edge No support NoFirefox Full support 66IE No support NoOpera Full support 44Safari Full support YesWebView Android Full support 46Chrome Android Full support 46Edge Mobile No support NoFirefox Android Full support 66Opera Android Full support 44Safari iOS Full support YesSamsung Internet Android Full support 5.0
stretch
Experimental
Chrome Full support 28
Alternate Name
Full support 28
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 28
Alternate Name
Full support 28
Alternate Name
Alternate Name Uses the non-standard name: -webkit-fill-available
Edge Mobile No support NoFirefox 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.

See also