CSS Flex Items
CSS Flex Items
The direct child elements of a flex container automatically becomes flex items.
Flex items can have the following properties:
order
- Specifies the display order of the flex items inside the flex containerflex-grow
- Specifies how much a flex item will grow relative to the rest of the flex itemsflex-shrink
- Specifies how much a flex item will shrink relative to the rest of the flex itemsflex-basis
- Specifies the initial length of a flex itemflex
- Shorthand property forflex-grow
,flex-shrink
, andflex-basis
align-self
- Specifies the alignment for the flex item inside the flex container
CSS order Property
The order
property specifies the
display order of
the flex items inside the flex container.
The first flex item in the source code does not have to appear as the first item in the layout.
The order value must be a number, and the default value is 0.
Example
The order
value specifies the display order of the flex items:
<div class="flex-container">
<div style="order: 3">1</div>
<div style="order: 2">2</div>
<div style="order: 4">3</div>
<div style="order: 1">4</div>
</div>
Result:
CSS flex-grow Property
The flex-grow
property specifies how much a flex item will grow relative to the rest of the flex items.
The value must be a number, and the default value is 0.
Example
Make the third flex item grow four times faster than the other flex items:
<div class="flex-container">
<div style="flex-grow: 1">1</div>
<div style="flex-grow: 1">2</div>
<div style="flex-grow:
4">3</div>
</div>
Result:
CSS flex-shrink Property
The flex-shrink
property specifies how much a flex item will shrink relative to the rest of the flex items.
The value must be a number, and the default value is 1.
Example
Let the third flex item shrink twice as much as the other flex items:
<div class="flex-container">
<div>1</div>
<div>2</div>
<div style="flex-shrink:
2">3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
Result:
CSS flex-basis Property
The flex-basis
property specifies the initial length of a flex item.
Example
Set the initial length of the third flex item to 250 pixels:
<div class="flex-container">
<div>1</div>
<div>2</div>
<div style="flex-basis: 250px">3</div>
<div>4</div>
</div>
Result:
CSS flex Property
The flex
property is a shorthand property for the
flex-grow
,
flex-shrink
, and
flex-basis
properties.
Example
Make the third flex item growable (1), not shrinkable (0), and with an initial length of 150 pixels:
<div class="flex-container">
<div>1</div>
<div>2</div>
<div style="flex:
1 0 150px">3</div>
<div>4</div>
</div>
CSS align-self Property
The align-self
property specifies the
alignment for the selected item inside the flexible container.
This property overrides the default alignment set by the
container's align-items
property.
In these examples we use a 200 pixels high container, to better demonstrate the
align-self
property:
Example
Align the third flex item in the middle of the container:
<div class="flex-container">
<div>1</div>
<div>2</div>
<div style="align-self:
center">3</div>
<div>4</div>
</div>
Result:
Example
Align the second flex item at the top of the container, and the third flex item at the bottom of the container:
<div class="flex-container">
<div>1</div>
<div style="align-self:
flex-start">2</div>
<div style="align-self:
flex-end">3</div>
<div>4</div>
</div>
Result:
The CSS Flex Items Properties
The following table lists all the CSS Flex Items properties:
Property | Description |
---|---|
align-self | Specifies the alignment for a flex item (overrides the flex container's align-items property) |
flex | A shorthand property for the flex-grow, flex-shrink, and the flex-basis properties |
flex-basis | Specifies the initial length of a flex item |
flex-grow | Specifies how much a flex item will grow relative to the rest of the flex items inside the container |
flex-shrink | Specifies how much a flex item will shrink relative to the rest of the flex items inside the container |
order | Specifies the order of the flex items inside the container |