height
======

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

The `min-height` and `max-height` properties override `height`.

Syntax
------


```css
/\* <length> values \*/
height: 120px;
height: 10em;
height: 100vh;

/\* <percentage> value \*/
height: 75%;

/\* Keyword values \*/
height: max-content;
height: min-content;
height: fit-content;
height: fit-content(20em);
height: auto;

/\* 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>`)` 
Experimental

Uses the fit-content formula with the available space replaced by the specified argument, i.e. `min(max-content, max(min-content, <length-percentage>))`.

`clamp()`

Enables selecting a middle value within a range of values between a defined minimum and maximum.

Accessibility concerns
----------------------

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
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 `auto`. A percentage height on the root element is relative to the initial containing block. |
| Computed value | a percentage or `auto` or the absolute length |
| Animation type | a length, percentage or calc(); |

Formal syntax
-------------
```

height =   
  auto                                      |  
  <length-percentage [0,∞]>                 |  
  min-content                               |  
  max-content                               |  
  fit-content( <length-percentage [0,∞]> )    
  
<length-percentage> =   
  <length>      |  
  <percentage>    
  
```

Examples
--------

### Setting height using pixels and percentages

#### HTML


```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


```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

Specifications
--------------

| Specification |
| --- |
| CSS Box Sizing Module Level 3 # preferred-size-properties |
| CSS Box Sizing Module Level 4 # sizing-values |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* The box model
* `width`
* `box-sizing`
* `min-height`, `max-height`
* The mapped logical properties: `block-size`, `inline-size`