Summary

The width CSS property specifies the width of the content area of an element. The content area is inside the padding, border, and margin of the element.

The min-width and max-width properties override width.

Initial valueauto
Applies toall elements but non-replaced inline elements, table rows, and row groups
Inheritedno
Percentagesrefer to the width of the containing block
Mediavisual
Computed valuea percentage or auto or the absolute length
Animatableyes, as a length, percentage or calc(); when both values are lengths, they are interpolated as lengths; when both values are percentages, they are interpolated as percentages; otherwise, both values are converted into a calc() function that is the sum of a length and a percentage (each possibly zero), and these calc() functions have each half interpolated as real numbers.
Canonical orderthe length or percentage before the keyword, if both are present

Syntax

/* <length> values */
width: 300px;
width: 25em;

/* <percentage> value */
width: 75%;

/* Keyword values */
width: border-box;
width: content-box;
width: max-content;
width: min-content;
width: available;
width: fit-content;
width: auto;

/* Global values */
width: inherit;
width: initial;
width: unset;

Values

<length>
See <length> for possible units.
<percentage>
Specified as a <percentage> of containing block's width. If the width of the containing block depends on the width of the element, the resulting layout is undefined.
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 width for the specified element.
max-content
The intrinsic preferred width.
min-content
The intrinsic minimum width.
available
The containing block width minus horizontal margin, border and padding.
fit-content
The larger of:
  • the intrinsic minimum width
  • the smaller of the intrinsic preferred width and the available width

Formal syntax

[<length> | <percentage>] && [border-box | content-box]? | available | min-content | max-content | fit-content | auto

Examples

Default width

p.goldie {
  background: gold;
}
<p class="goldie">The Mozilla community produces a lot of great software.</p>

Pixels and ems

.px_length {
  width: 200px;
  background-color: red;
  color: white;
  border: 1px solid black;
}

.em_length {
  width: 20em;
  background-color: white;
  color: red;
  border: 1px solid black;
}
<div class="px_length">Width measured in px</div>
<div class="em_length">Width measured in em</div>

Percentage

.percent {
  width: 20%;
  background-color: silver;
  border: 1px solid red;
}
<div class="percent">Width in percentage</div>

max-content

p.maxgreen {
  background: lightgreen;
  width: intrinsic;           /* Safari/WebKit uses a non-standard name */
  width: -moz-max-content;    /* Firefox/Gecko */
  width: -webkit-max-content; /* Chrome */
}
<p class="maxgreen">The Mozilla community produces a lot of great software.</p>

min-content

p.minblue {
  background: lightblue;
  width: -moz-min-content;    /* Firefox */
  width: -webkit-min-content; /* Chrome */
}
<p class="minblue">The Mozilla community produces a lot of great software.</p>

Specifications

Specification Status Comment
CSS Basic Box Model
The definition of 'width' in that specification.
Working Draft Added the max-content, min-content, available, fit-content, border-box, content-box keywords.
CSS Transitions
The definition of 'width' in that specification.
Working Draft Lists width as animatable.
CSS Level 2 (Revision 1)
The definition of 'width' in that specification.
Recommendation Precises on which element it applies to.
CSS Level 1
The definition of 'width' in that specification.
Recommendation Initial definition

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) 1.0 (1.7 or earlier) 4 3.5 1.0 (85)
Animatability ? 16.0 (16.0) ? ? ?
max-content 22.0 -webkit
46.0 [1]
3.0 (1.9)-moz ? 15 -webkit 2.0 (421) (intrinsic value)
6.1 -webkit
min-content

22.0 [4] -webkit
46.0 [1]

3.0 (1.9) -moz ? 15 -webkit 2.0 (421) (min-intrinsic value)
6.1 -webkit
available No support 3.0 (1.9) -moz ? ? ?[1]
fill-available 22.0 -webkit No support ? ? 6.1 -webkit
fit-content 22.0 [4] -webkit
46.0 [1]
3.0 (1.9) -moz ? 15 -webkit 6.1 -webkit[2]
border-box and content-box No support No support No support No support No support
Feature Android Android Webview Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Yes) ? ? ? ? (Yes)
Animatability ? ? 16.0 (16.0) ? ? ? ?
max-content ? 46.0 [1] ? ? ? ? 46.0 [1]
min-content ? 46.0 [1] ? ? ? ? 46.0 [1]
available ? ? ? ? ? ? ?
fill-available ? 46.0 [1] ? ? ? ? 46.0 [1]
fit-content ? 46.0 [1] ? ? ? ? 46.0 [1]
border-box and content-box ? ? ? ? ? ? ?

[1] WebKit implements a variation of this value under the name fill-available as of December 2013.

[2] Earlier versions of WebKit implemented an earlier version of this value under the name intrinsic, but implements fit-content since version 6.1 as well.

[3] Unprefixed.

[4] Old WebKit support intrinsic and min-intrinsic keywords, but removed in Chrome 48.

See also