`height` CSS property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It's been available across browsers since July 2015.
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.
Try it
height: 150px;
height: 6em;
height: 75%;
height: auto;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
This is a box where you can change the height.
</div>
</section>
#example-element {
display: flex;
flex-direction: column;
background-color: #5b6dcd;
justify-content: center;
color: white;
}
The min-height and max-height properties override height.
Note: As a geometric property, height also applies to the <svg>, <rect>, <image>, and <foreignObject> SVG elements, with auto resolving to 0 and percent values being relative to the SVG viewport height for <rect>. The CSS height property value overrides any SVG height attribute value set on the SVG element.
Syntax
/* <length> values */ height: 120px; height: 10em; height: 100vh; height: anchor-size(height); height: anchor-size(--my-anchor self-block, 250px); height: clamp(200px, anchor-size(width)); /* <percentage> value */ height: 75%; /* Keyword values */ height: max-content; height: min-content; height: fit-content; height: fit-content(20em); height: auto; height: stretch; /* Global values */ height: inherit; height: initial; height: revert; height: revert-layer; height: unset;
Values
-
<length> - Defines the height as a distance value.
-
<percentage> - Defines the height as a percentage of the containing block's height.
-
auto - The browser will calculate and select a height for the specified element.
-
max-content - The intrinsic preferred height.
-
min-content - The intrinsic minimum height.
-
fit-content - Use the available space, but not more than max-content, i.e.,
min(max-content, max(min-content, stretch)). -
fit-content(<length-percentage>) - Uses the fit-content formula with the available space replaced by the specified argument, i.e.,
min(max-content, max(min-content, <length-percentage>)). -
stretch - Sets the height of the element's margin box to the height of its containing block. It attempts to make the margin box fill the available space in the containing block, so in a way behaving similar to
100%but applying the resulting size to the margin box rather than the box determined by box-sizing.
Accessibility
Ensure that elements set with a height aren't truncated and/or don't 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](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html)
Formal 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 <code>auto</code>. A percentage height on the root element is relative to the initial containing block. |
| Computed value | a percentage or <code>auto</code> or the absolute length |
| Animation type | $1$, <a href="/en-US/docs/Web/CSS/Reference/Values/percentage#interpolation" title="Values of the <percentage> CSS data type are interpolated as real, floating-point numbers.">percentage</a> or calc(); |
Formal syntax
height = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> <length-percentage> = <length> | <percentage> <calc-size()> = calc-size( <calc-size-basis>, <calc-sum> ) <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? ) <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum> <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]* <anchor-name> = <dashed-ident> <anchor-size> = width | height | block | inline | self-block | self-inline <calc-product> = <calc-value> [ '*' <calc-value> | '/' <number> ]* <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) <calc-constant> = e | pi | infinity | -infinity | NaN
Examples
Setting height using pixels and percentages
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
Stretch height to fill the containing block
HTML
<div class="parent"> <div class="child">text</div> </div> <div class="parent"> <div class="child stretch">stretch</div> </div>
CSS
@supports not (height: stretch) {
body::before {
content: "Your browser doesn't support the `stretch` value yet.";
background-color: wheat;
display: block;
text-align: center;
padding: 1rem 0;
}
}
.parent {
height: 150px;
margin: 1rem;
border: solid;
}
.child {
margin: 1rem;
background: #00999999;
}
.stretch {
height: stretch;
}
Result
Specifications
| Specification |
|---|
| CSS Box Sizing Module Level 3 # preferred-size-properties |
| CSS Box Sizing Module Level 3 # sizing-values |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
height |
1 |
12 |
1 |
7 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
anchor-size |
125 |
125 |
147 |
111 |
26 |
125 |
147 |
83 |
26 |
27.0 |
125 |
26 |
auto |
1 |
12 |
1 |
15 |
1 |
18 |
4 |
14 |
1 |
1.0 |
4.4 |
1 |
fit-content |
46 |
79 |
94
41
|
33 |
11
9
|
46 |
94
41
|
33 |
11
9
|
5.0 |
46 |
11
9
|
fit-content_function |
No |
No |
91 |
No |
No |
No |
No |
No |
No |
No |
No |
No |
max-content |
46 |
79 |
66
3
|
44 |
11 |
46 |
66
4
|
43 |
11 |
5.0 |
46 |
11 |
min-content |
46 |
79 |
66
3
|
44 |
11 |
46 |
66
4
|
43 |
11 |
5.0 |
46 |
11 |
stretch |
138
28
|
138
79
|
146 |
122
15
|
27
9
|
138
28
|
146 |
91
15
|
27
9
|
5.0 |
138
4.4
|
27
9
|
See also
widthbox-sizing-
min-height,max-height -
block-size,inline-size anchor-size()clamp()minmax()- SVG
heightattribute - Introduction to the CSS box model
- CSS box model module
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/height