flex
Quick Summary for flex
flex
CSS shorthand property sets how a flex item will grow or shrink to fit the space available in its flex container.
Code Usage for flex
/* Keyword values */ flex: auto; flex: initial; flex: none; /* One value, unitless number: flex-grow flex-basis is then equal to 0. */ flex: 2; /* One value, width/height: flex-basis */ flex: 10em; flex: 30%; flex: min-content; /* Two values: flex-grow | flex-basis */ flex: 1 30px; /* Two values: flex-grow | flex-shrink */ flex: 2 2; /* Three values: flex-grow | flex-shrink | flex-basis */ flex: 2 2 10%; /* Global values */ flex: inherit; flex: initial; flex: revert; flex: unset;
More Details for flex
flex
The flex
CSS shorthand property sets how a flex item will grow or shrink to fit the space available in its flex container.
Constituent properties
This property is a shorthand for the following CSS properties:
flex-grow
flex-shrink
flex-basis
Syntax
/* Keyword values */ flex: auto; flex: initial; flex: none; /* One value, unitless number: flex-grow flex-basis is then equal to 0. */ flex: 2; /* One value, width/height: flex-basis */ flex: 10em; flex: 30%; flex: min-content; /* Two values: flex-grow | flex-basis */ flex: 1 30px; /* Two values: flex-grow | flex-shrink */ flex: 2 2; /* Three values: flex-grow | flex-shrink | flex-basis */ flex: 2 2 10%; /* Global values */ flex: inherit; flex: initial; flex: revert; flex: unset;
The flex
property may be specified using one, two, or three values.
<number>
: In this case it is interpreted as flex: <number> 1 0
; the flex-shrink
value is assumed to be 1
and the flex-basis
value is assumed to be 0
. a <width>
: In this case it is interpreted as flex: 1 1 <width>
; the flex-grow
value is assumed to be 1
and the flex-shrink
value is assumed to be 1
. one of the keywords: none
, auto
, or initial
. Two-value syntax: The first value must be: a <number>
and it is interpreted as <flex-grow>
. The second value must be one of: a <number>
: then it is interpreted as <flex-shrink>
. a valid value for width
: then it is interpreted as <flex-basis>
. Three-value syntax: the values must be in the following order: a <number>
for <flex-grow>
. a <number>
for <flex-shrink>
. a valid value for width
for <flex-basis>
. 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
of the flex item. Negative values are considered invalid. Defaults to 1
when omitted. (initial is 0
)
<'flex-shrink'>
Defines the flex-shrink
of the flex item. Negative values are considered invalid. Defaults to 1
when omitted. (initial is 1
)
<'flex-basis'>
Defines the flex-basis
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. (initial is auto
)
Description
For most purposes, authors should set flex
to one of the following values: auto
, initial
, none
, or a positive unitless number. To see the effect of these values, try resizing the flex containers below:
By default flex items don't shrink below their minimum content size. To change this, set the item's min-width
or min-height
.
Formal definition
Initial value | as each of the properties of the shorthand:flex-grow : 0 flex-shrink : 1 flex-basis : auto |
---|---|
Applies to | flex items, including in-flow pseudo-elements |
Inherited | no |
Computed value | as each of the properties of the shorthand:flex-grow : as specifiedflex-shrink : as specifiedflex-basis : as specified, but with relative lengths converted into absolute lengths |
Animation type | as each of the properties of the shorthand:flex-grow : a numberflex-shrink : a numberflex-basis : a length, percentage or calc(); |
Formal syntax
none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
Examples
Setting flex: auto
HTML<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>
CSS #flex-container { display: flex; flex-direction: row; } #flex-container > .flex-item { flex: auto; } #flex-container > .raw-item { width: 5rem; }
ResultSpecifications
Specification |
---|
CSS Flexible Box Layout Module Level 1 # flex-property |
See also
CSS Flexbox Guide: Basic Concepts of Flexbox CSS Flexbox Guide: Controlling Ratios of flex items along the main axisLast modified: Feb 2, 2022, by MDN contributors
Select your preferred language English (US)EspañolFrançais日本語한국어Português (do Brasil)Русский中文 (简体) Change language