Home Python C Language C ++ HTML 5 CSS Javascript Java Kotlin SQL DJango Bootstrap React.js R C# PHP ASP.Net Numpy Dart Pandas Digital Marketing

Main and Cross Axes in CSS


The concept of the main axis and cross axis is essential in understanding how Flexbox works in CSS. These axes define the direction in which items are laid out within a flex container. Knowing the relationship between the main and cross axes helps in positioning and aligning flex items effectively.

1. Main Axis

The main axis refers to the primary direction along which flex items are placed within a flex container. It is determined by the flex-direction property of the flex container. By default, the main axis is horizontal, but it can change to vertical if flex-direction is set to column or column-reverse.

The main axis is used when distributing space between flex items or when aligning them based on the flow direction. For instance, if you set flex-direction: row, the main axis will be horizontal. If you set flex-direction: column, the main axis will be vertical.

Example (Horizontal Main Axis - Default Behavior):

          <style>
            .container {
              display: flex;
            }
          </style>
          <div class="container">
            <div>Item 1</div>
            <div>Item 2</div>
            <div>Item 3</div>
          </div>
        

In this example, with the default flex-direction: row, the flex container’s main axis is horizontal, so the items are placed in a row from left to right.

2. Cross Axis

The cross axis is the axis perpendicular to the main axis. It is used to align items along the secondary direction. The cross axis will be vertical if the main axis is horizontal (with flex-direction: row), and it will be horizontal if the main axis is vertical (with flex-direction: column).

Just as the main axis controls the direction of the flex items, the cross axis determines how items are aligned across that direction. Flex properties like align-items and align-self operate along the cross axis.

Example (Vertical Cross Axis - Default Behavior):

          <style>
            .container {
              display: flex;
            }
          </style>
          <div class="container">
            <div>Item 1</div>
            <div>Item 2</div>
            <div>Item 3</div>
          </div>
        

In the above example, with the default flex-direction: row, the main axis is horizontal, so the cross axis is vertical. By default, flex items are aligned along the cross axis (vertical) to the start of the container.

3. Modifying the Axes with flex-direction

The direction of the main and cross axes can be altered by changing the flex-direction property. This affects how items are arranged and aligned.

Example (Vertical Main Axis):

          <style>
            .container {
              display: flex;
              flex-direction: column;
            }
          </style>
          <div class="container">
            <div>Item 1</div>
            <div>Item 2</div>
            <div>Item 3</div>
          </div>
        

In this example, the flex-direction: column property changes the direction of the main axis to vertical, and the cross axis becomes horizontal. The items will be stacked vertically.

4. Aligning Items Along the Main Axis

The alignment of flex items along the main axis can be controlled using the justify-content property. This property aligns items based on the main axis and helps control the distribution of space between the items.

Example (Aligning items along the main axis):

          <style>
            .container {
              display: flex;
              justify-content: space-between;
            }
          </style>
          <div class="container">
            <div>Item 1</div>
            <div>Item 2</div>
            <div>Item 3</div>
          </div>
        

In this example, the justify-content: space-between property distributes the items evenly along the main axis with equal space between them.

5. Aligning Items Along the Cross Axis

To align items along the cross axis (perpendicular to the main axis), the align-items property is used. This property controls the alignment of items on the cross axis.

Example (Aligning items along the cross axis):

          <style>
            .container {
              display: flex;
              align-items: center;
            }
          </style>
          <div class="container">
            <div>Item 1</div>
            <div>Item 2</div>
            <div>Item 3</div>
          </div>
        

In this example, align-items: center aligns the items to the center of the cross axis (vertical axis if flex-direction: row).

Conclusion

Understanding the main and cross axes in CSS is crucial for effectively using Flexbox to layout web pages. The main axis controls the primary direction of flex items, while the cross axis controls the perpendicular alignment. By manipulating the flex-direction, justify-content, and align-items properties, you can easily control the alignment and distribution of flex items within a container.










Q3 Schools : India


Online Complier

HTML 5

Python

java

C++

C

JavaScript

Website Development

HTML 5

Python

java

C++

C

JavaScript

Campus Learning

C

C#

java