CSS CSS Tutorial CSS Advanced CSS Responsive Web Design(RWD) CSS Grid CSS Properties Sass Tutorial Sass Functions



flex

Flex is a powerful CSS property that allows developers to create flexible and responsive layouts. It is a shorthand property that combines several other properties, including display, flex-direction, flex-wrap, justify-content, align-items, and align-content. In this article, we will explore the different flex properties and how they can be used to create dynamic layouts.

Flex Container

The flex container is the parent element that contains one or more flex items. To create a flex container, we need to set the display property to flex or inline-flex. The flex property allows us to create a flexible container that can adjust its size and layout based on the available space. Here is an example:

<div style="display: flex;">
  <div>Flex Item 1</div>
  <div>Flex Item 2</div>
  <div>Flex Item 3</div>
</div>

In this example, we have created a flex container with three flex items. The items are arranged in a row by default, but we can change the direction using the flex-direction property.

Flex Direction

The flex-direction property allows us to change the direction of the flex items. By default, the items are arranged in a row, but we can change it to column, row-reverse, or column-reverse. Here is an example:

<div style="display: flex; flex-direction: column;">
  <div>Flex Item 1</div>
  <div>Flex Item 2</div>
  <div>Flex Item 3</div>
</div>

In this example, we have changed the direction of the flex items to column. Now, the items are arranged vertically instead of horizontally.

Flex Wrap

The flex-wrap property allows us to control whether the flex items should wrap or not. By default, the items are not wrapped, and they will overflow the container if there is not enough space. We can change this behavior by setting the flex-wrap property to wrap or wrap-reverse. Here is an example:

<div style="display: flex; flex-wrap: wrap;">
  <div style="flex-basis: 200px;">Flex Item 1</div>
  <div style="flex-basis: 200px;">Flex Item 2</div>
  <div style="flex-basis: 200px;">Flex Item 3</div>
  <div style="flex-basis: 200px;">Flex Item 4</div>
  <div style="flex-basis: 200px;">Flex Item 5</div>
  <div style="flex-basis: 200px;">Flex Item 6</div>
</div>

In this example, we have set the flex-wrap property to wrap, and we have also specified a flex-basis of 200px for each item. Now, if there is not enough space to display all the items in a row, they will wrap to the next line.

Justify Content

The justify-content property allows us to align the flex items along the main axis. By default, the items are aligned to the left, but we can change this behavior by setting the justify-content property to center, flex-start, flex-end, space-between, or space-around. Here is an example:

<div style="display: flex; justify-content: center;">
  <div style="flex-basis: 200px;">Flex Item 1</div>
  <div style="flex-basis: 200px;">Flex Item 2</div>
  <div style="flex-basis: 200px;">Flex Item 3</div>
</div>

In this example, we have set the justify-content property to center, and now the items are aligned to the center of the container.

Align Items

The align-items property allows us to align the flex items along the cross axis. By default, the items are stretched to fill the container, but we can change this behavior by setting the align-items property to center, flex-start, flex-end, baseline, or stretch. Here is an example:

<div style="display: flex; align-items: center;">
  <div style="flex-basis: 100px; height: 50px;">Flex Item 1</div>
  <div style="flex-basis: 200px; height: 100px;">Flex Item 2</div>
  <div style="flex-basis: 150px; height: 75px;">Flex Item 3</div>
</div>

In this example, we have set the align-items property to center, and now the items are aligned to the center of the container along the cross axis.

Align Content

The align-content property allows us to align the flex lines along the cross axis. This property only works when there are multiple lines of flex items. By default, the lines are stretched to fill the container, but we can change this behavior by setting the align-content property to center, flex-start, flex-end, space-between, space-around, or stretch. Here is an example:

<div style="display: flex; flex-wrap: wrap; align-content: center;">
  <div style="flex-basis: 200px; height: 100px;">Flex Item 1</div>
  <div style="flex-basis: 200px; height: 100px;">Flex Item 2</div>
  <div style="flex-basis: 200px; height: 100px;">Flex Item 3</div>
  <div style="flex-basis: 200px; height: 100px;">Flex Item 4</div>
  <div style="flex-basis: 200px; height: 100px;">Flex Item 5</div>
  <div style="flex-basis: 200px; height: 100px;">Flex Item 6</div>
</div>

In this example, we have set the align-content property to center, and now the lines of flex items are aligned to the center of the container along the cross axis.

Conclusion

Flex is a powerful CSS property that allows developers to create flexible and responsive layouts. By combining several other properties, we can create dynamic layouts that can adjust their size and layout based on the available space. With the help of the flex properties, we can create complex layouts with ease.

References

Activity