This site is mobile accessible. Press the "Tap Here" button to use a smaller font-size.

Smartphone icons created by Freepik - Flaticon

15.4.2 CSS Flex Items

Child Elements (Items)

The direct child elements of a flex container automatically becomes flexible (flex) items.

1
2
3
4

The element above represents four blue flex items inside a grey flex container.

Example 1: Four blue flex items inside a grey flex container
<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div> 

The order Property

The order property specifies the order of the flex items.

1
2
3
4

The first flex item in the code does not have to appear as the first item in the layout. The order value must be a number, default value is 0.

Example 2: Sort the flex items

The order property can change the 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>

The flex-grow Property

The flex-grow property specifies how much a flex item will grow relative to the rest of the flex items.

1
2
3

The value must be a number, default value is 0.

Example 3: The flex-grow property

Make the third flex item grow eight 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: 8">3</div>
</div>

The flex-shrink Property

The flex-shrink property specifies how much a flex item will shrink relative to the rest of the flex items.

1
2
3
4
5
6
7
8
9
10

I added overflow: auto to the <div> container to enhance the look on screens smaller than 600px wide.

The value must be a number, default value is 1.

Example 4: The flex-shrink property

Do not let the third flex item shrink as much as the other flex items:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-shrink: 0">3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
  <div>10</div>
</div>

The flex-basis Property

The flex-basis property specifies the initial length of a flex item.

1
2
3
4
Example 5: The flex-basis property

Set the initial length of the third flex item to 200 pixels:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-basis: 200px">3</div>
  <div>4</div>
</div>

The flex Property

The flex property is a shorthand property for the flex-grow, flex-shrink, and flex-basis properties.

Example 6: The flex shorthand property

Make the third flex item not growable (0), not shrinkable (0), and with an initial length of 200 pixels:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex: 0 0 200px">3</div>
  <div>4</div>
</div> 

The align-self Property

The align-self property specifies the alignment for the selected item inside the flexible container. The align-self property overrides the default alignment set by the container's align-items property.

1
2
3
4

In these examples we use a 200 pixels high container, to better demonstrate the align-self property:

Example 7: Using align-self: center

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> 
Example 8: Using align-self: flex-start and align-self: flex-end

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>