Welcome to FixHub, If you need design please contact us

CSS Flexbox

 

CSS Flexbox 

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

<div class="flex-container">
  
<div>1</div>
  
<div>2</div>
  
<div>3</div>
  
<div>4</div>
</div>

The flex item properties are:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

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

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

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

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

Example

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

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-growflex-shrink, and flex-basis properties.

Example

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

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

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>

The CSS Flexbox Items Properties

The following table lists all the CSS Flexbox 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 same container

flex-shrink

Specifies how much a flex item will shrink relative to the rest of the flex items inside the same container

order

Specifies the order of the flex items inside the same container

 

CSS Flex Responsive

Responsive Flexbox

You learned from the CSS Media Queries chapter that you can use media queries to create different layouts for different screen sizes and devices.

Laptop and Desktops:

1

2

3

Mobile phones and Tablets:

1

2

3

 

For example, if you want to create a two-column layout for most screen sizes, and a one-column layout for small screen sizes (such as phones and tablets), you can change the flex-direction from row to column at a specific breakpoint (800px in the example below):

Example

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

/* Responsive layout - makes a one column layout instead of a two-column layout */
@media (max-width: 800px) 
{
  .flex-container 
{
    flex-direction
: column;
  
}
}

Another way is to change the percentage of the flex property of the flex items to create different layouts for different screen sizes. Note that we also have to include flex-wrap: wrap; on the flex container for this example to work:

Example

.flex-container {
  display
: flex;
  flex-wrap
: wrap;
}

.flex-item-left 
{
  flex
: 50%;
}

.flex-item-right 
{
  flex
: 50%;
}

/* Responsive layout - makes a one column layout instead of a two-column layout */
@media (max-width: 800px) 
{
  .flex-item-right, .flex-item-left 
{
    flex
: 100%;
  
}
}


Post a Comment

0Comments
Post a Comment (0)