MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey-2018-1

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.

/* <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;

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

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

Syntax

Values

<length>
The maximum height, expressed as a <length>.
<percentage>
The maximum height, expressed as a <percentage> of the containing block's height. If the height of the containing block is not specified explicitly, the percentage value is treated as zero.

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; }

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.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support1 Yes117721
fit-content, max-content, and min-content No3 No3 -moz- 4 No No95
fill-available No No No No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? ? Yes ? ? ? ?
fit-content, max-content, and min-content ? ? No ? ?95 ?
fill-available ? ? No ? ? ? ?

1. CSS 2.1 leaves the behavior of max-height with table undefined. Firefox supports applying max-height to table elements.

2. CSS 2.1 leaves the behavior of max-height with table undefined. Opera supports applying max-height to table elements.

3. Chrome implements an earlier proposal for setting 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.

4. 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.

5. Safari implements an earlier proposal for setting 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