flex

A propriedade flex do CSS, define como um ítem será posicionado para no espaço disponível dentro de seu container.

Propriedades

Esta propriedade é uma abreviação das seguintes propriedades CSS:

By default flex items don't shrink below their minimum content size. To change this, set the item's min-width (en-US) or min-height.

Sintaxe

/* Propriedades principais */
flex: auto;
flex: initial;
flex: none;

/* Valor único, sem unidade: flex-grow */
flex: 2;

/* Valor único, unidade width/height: flex-basis */
flex: 10em;
flex: 30%;
flex: min-content;

/* Dois valores: flex-grow | flex-basis */
flex: 1 30px;

/* Dois valores: flex-grow | flex-shrink */
flex: 2 2;

/* Três valores: flex-grow | flex-shrink | flex-basis */
flex: 2 2 10%;

/* Valores globais */
flex: inherit;
flex: initial;
flex: unset;

The flex property may be specified using one, two, or three values.

Values

initial
The item is sized according to its width and height properties. It shrinks to its minimum size to fit the container, but does not grow to absorb any extra free space in the flex container. This is equivalent to setting "flex: 0 1 auto".
auto
The item is sized according to its width and height properties, but grows to absorb any extra free space in the flex container, and shrinks to its minimum size to fit the container. This is equivalent to setting "flex: 1 1 auto".
none
The item is sized according to its width and height properties. It is fully inflexible: it neither shrinks nor grows in relation to the flex container. This is equivalent to setting "flex: 0 0 auto".
<'flex-grow'>
Defines the flex-grow (en-US) of the flex item. Negative values are considered invalid. Defaults to 1 when omitted.
<'flex-shrink'>
Defines the flex-shrink (en-US) of the flex item. Negative values are considered invalid. Defaults to 1 when omitted.
<'flex-basis'>
Defines the flex-basis (en-US) of the flex item. A preferred size of 0 must have a unit to avoid being interpreted as a flexibility. Defaults to 0 when omitted.

Formal syntax

none | (en-US) [ (en-US) <'flex-grow'> (en-US) <'flex-shrink'> (en-US)? (en-US) || (en-US) <'flex-basis'> (en-US) ] (en-US)

Example

#flex-container {
  display: flex;
  flex-direction: row;
}

#flex-container > .flex-item {
  flex: auto;
}

#flex-container > .raw-item {
  width: 5rem;
}
<div id="flex-container">
  <div class="flex-item" id="flex">Flex box (click to toggle raw box)</div>
  <div class="raw-item" id="raw">Raw box</div>
</div>

Result

Specifications

Specification Status Comment
CSS Flexible Box Layout Module
The definition of 'flex' in that specification.
Candidata a Recomendação Initial definition

Initial valueas each of the properties of the shorthand:
Aplica-se aflex items, including in-flow pseudo-elements
Inheritednão
Computed valueas each of the properties of the shorthand:
Animation typeas each of the properties of the shorthand:

Browser compatibility

BCD tables only load in the browser

See also