Open In App

CSS Order Property

Last Updated : 10 Jan, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The order property defines the arrangement of flexible items inside a flex container, determining their position relative to one another. It allows you to visually reorder items without affecting their order in the source code.

  • The default value of the order property is 0, with higher values appearing later in the visual order.
  • The property applies only to items inside a flex container and does not affect non-flexible items or containers.

Syntax

order: number | initial | inherit;

Property values: 

  • number: Specifies the order of a flexible item; items with lower numbers appear first.
  • initial: Resets the property to its default value (0).
  • inherit: Inherits the order value from its parent element.
HTML
<html>
<head>
    <style>
        .item1 {
            order: 2;
        }
        .item2 {
            order: 1;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item1">Item 1</div>
        <div class="item2">Item 2</div>
    </div>
</body>
</html>


1. Using Number property

The number value in the order property specifies the position of a flexible item relative to others in a flex container.

Syntax: 

order: number;
HTML
<html>
<head>
    <style>
        .container {
            display: flex;
        }
        .item1 {
            order: 2;
        }
        .item2 {
            order: 1;
        }
        .item3 {
            order: 3;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item1">Item 1</div>
        <div class="item2">Item 2</div>
        <div class="item3">Item 3</div>
    </div>
</body>
</html>

In this example

  • The .container is a flex container with three child items.
  • Each item is assigned an order value:
    • .item1 has order: 2;
    • .item2 has order: 1;
    • .item3 has order: 3;
  • Items are displayed based on their order values, resulting in the sequence: Item 2, Item 1, Item 3. 

2. Using initial Value

The initial value resets the order property to its default value, which is 0.

Syntax: 

order:initial;
HTML
<html>
<head>
    <style>
        .container {
            display: flex;
        }
        .item1 {
            order: 2;
        }
        .item2 {
            order: initial;
        }
        .item3 {
            order: 1;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item1">Item 1</div>
        <div class="item2">Item 2</div>
        <div class="item3">Item 3</div>
    </div>
</body>
</html>

In this example

  • .item1 has order: 2;, placing it after items with lower order values.
  • .item2 has order: initial;, which resets its order to the default value of 0.
  • .item3 has order: 1;, placing it between items with order 0 and 2.

3. Using inherit Value

The inherit value makes the order property inherit its value from its parent element.

HTML
<html>
<head>
    <style>
        .container {
            display: flex;
            order: 3;
        }
        .item1 {
            order: inherit;
        }
        .item2 {
            order: 1;
        }
        .item3 {
            order: 2;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="item1">Item 1</div>
        <div class="item2">Item 2</div>
        <div class="item3">Item 3</div>
    </div>
</body>
</html>


In this example

  • The .container has an order value of 3, but since it’s not a flex item itself, this value doesn’t affect its positioning.
  • .item1 has order: inherit;, attempting to inherit the order value from its parent.
  • .item2 has order: 1;, and .item3 has order: 2;, determining their positions within the flex container.

Best Practices for Using CSS order Property

  • Use Order Sparingly: Rely on the natural document order whenever possible to avoid unnecessary complexity in your layouts.
  • Combine with Flexbox: Use order effectively within a flex container to rearrange items visually without altering the source code.
  • Default to Natural Flow: Set order only when specific reordering is required, as excessive use may lead to confusion in maintaining the layout.


Next Article

Similar Reads