width

The width CSS property sets an element's width. By default, it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.

Try it

The specified value of width applies to the content area so long as its value remains within the values defined by min-width and max-width.

  • If the value for width is less than the value for min-width, then min-width overrides width.
  • If the value for width is greater than the value for max-width, then max-width overrides width.

Syntax

css
/* <length> values */
width: 300px;
width: 25em;
width: anchor-size(--myAnchor inline, 120%);
width: minmax(100px, anchor-size(width));

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

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

/* Global values */
width: inherit;
width: initial;
width: revert;
width: revert-layer;
width: unset;

Values

<length>

Defines the width as a distance value.

<percentage>

Defines the width as a percentage of the containing block's width.

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.

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

Accessibility concerns

Ensure that elements set with a width aren't truncated and/or don't obscure other content when the page is zoomed to increase text size.

Formal definition

Initial valueauto
Applies toall elements but non-replaced inline elements, table rows, and row groups
Inheritedno
Percentagesrefer to the width of the containing block
Computed valuea percentage or auto or the absolute length
Animation typea length, percentage or calc();

Formal syntax

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

<length-percentage> =
<length> |
<percentage>

Examples

Default width

css
p.goldie {
  background: gold;
}
html
<p class="goldie">The MDN community writes really great documentation.</p>

Example using pixels and ems

css
.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;
}
html
<div class="px_length">Width measured in px</div>
<div class="em_length">Width measured in em</div>

Example with percentage

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

Example using "max-content"

css
p.maxgreen {
  background: lightgreen;
  width: max-content;
}
html
<p class="maxgreen">The MDN community writes really great documentation.</p>

Example using "min-content"

css
p.minblue {
  background: lightblue;
  width: min-content;
}
html
<p class="minblue">The MDN community writes really great documentation.</p>

Specifications

Specification
CSS Box Sizing Module Level 4
# width-height-keywords
CSS Box Sizing Module Level 4
# sizing-values

Browser compatibility

BCD tables only load in the browser

See also