The height
CSS property specifies the height of an element. By default, the property defines the height of the content area. If box-sizing
is set to border-box
, however, it instead determines the height of the border area.
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.
The min-height
and max-height
properties override height
.
Syntax
/* Keyword value */ height: auto; /* <length> values */ height: 120px; height: 10em; /* <percentage> value */ height: 75%; /* Global values */ height: inherit; height: initial; height: unset;
Values
<length>
- Defines the height as an absolute value.
<percentage>
- Defines the height as a percentage of the containing block's height.
border-box
- If present, the preceding
<length>
or<percentage>
is applied to the element's border box. content-box
- If present, the preceding
<length>
or<percentage>
is applied to the element's content box. auto
- The browser will calculate and select a height for the specified element.
fill
- Use the
fill-available
inline size orfill-available
block size, as appropriate to the writing mode. max-content
- The intrinsic preferred height.
min-content
- The intrinsic minimum height.
available
- The containing block height minus vertical margin, border and padding.
fit-content
- The larger of:
- the intrinsic minimum height
- the smaller of the intrinsic preferred height and the available height
Formal syntax
[ <length> | <percentage> ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto
Example
HTML
<div id="taller">I'm 50 pixels tall.</div> <div id="shorter">I'm 25 pixels tall.</div> <div id="parent"> <div id="child"> I'm half the height of my parent. </div> </div>
CSS
div { width: 250px; margin-bottom: 5px; border: 2px solid blue; } #taller { height: 50px; } #shorter { height: 25px; } #parent { height: 100px; } #child { height: 50%; width: 75%; }
Result
Accessibility concerns
Ensure that elements set with a height
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 'width' in that specification. |
Working Draft | Added the max-content , min-content , available , fit-content keywords. |
CSS Transitions The definition of 'height' in that specification. |
Working Draft | Lists height as animatable. |
CSS Level 2 (Revision 1) The definition of 'height' in that specification. |
Recommendation | Adds support for the <length> values and precises on which element it applies to. |
CSS Level 1 The definition of 'height' in that specification. |
Recommendation | Initial definition. |
Initial value | auto |
---|---|
Applies to | all elements but non-replaced inline elements, table columns, and column groups |
Inherited | no |
Percentages | The 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 value computes to auto . A percentage height on the root element is relative to the initial containing block. |
Media | visual |
Computed value | a percentage or auto or the absolute length |
Animation type | a length, percentage or calc(); |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
height | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 4 | Opera Full support 7 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support Yes |
fit-content | Chrome Full support 46 | Edge No support No | Firefox No support No | IE No support No | Opera Full support 33 | Safari
Full support
11
| WebView Android Full support 46 | Chrome Android Full support 46 | Firefox Android No support No | Opera Android ? | Safari iOS
Full support
11
| 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 11 | WebView Android Full support 46 | Chrome Android Full support 46 | Firefox Android
Full support
66
| Opera Android Full support 43 | Safari iOS Full support 11 | 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 11 | WebView Android Full support 46 | Chrome Android Full support 46 | Firefox Android
Full support
66
| Opera Android Full support 43 | Safari iOS Full support 11 | Samsung Internet Android Full support 5.0 |
stretch | Chrome
Full support
28
| Edge No support No | Firefox No support No | IE No support No | Opera
Full support
15
| Safari
Full support
9
| WebView Android
Full support
4.4
| Chrome Android
Full support
28
| Firefox Android No support No | Opera Android ? | Safari iOS
Full support
9
| Samsung Internet Android Full support 5.0 |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- 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.