width

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

/* <length> values */
width: 300px;
width: 25em;
/* <percentage> value */
width: 75%;
/* Keyword values */
width: 25em border-box;
width: 75% content-box;
width: max-content;
width: min-content;
width: available;
width: fit-content;
width: auto;
/* Global values */
width: inherit;
width: initial;
width: unset;

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
Animation typea length, percentage or calc();
Canonical orderthe length or percentage before the keyword, if both are present

Syntax

The width property is specified as either:

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.
fill
Use the fill-available inline size or fill-available block size, as appropriate to the writing mode.
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
CSS Intrinsic & Extrinsic Sizing Module Level 3
The definition of 'width' in that specification.
Working Draft Adds new sizing keywords for width and height.

Browser compatibility

                          
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (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]
No support 3.0 (1.9)-moz ? 15 -webkit 2.0 (421) (intrinsic value)
6.1 -webkit
min-content

22.0 [4] -webkit
46.0 [1]

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

[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