Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

This is a property of the original CSS Flexible Box Layout Module draft, and has been replaced by a newer standard. See flexbox for information about the current standard.

The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically.

/* Keyword values */
box-orient: horizontal;
box-orient: vertical;
box-orient: inline-axis;
box-orient: block-axis;

/* Global values */
box-orient: inherit;
box-orient: initial;
box-orient: unset;

For example, XUL box and hbox elements lay out their contents horizontally by default, but XUL vbox elements lay out their contents vertically by default.

HTML DOM elements lay out their contents along the inline-axis by default. This CSS property will only apply to HTML elements with a CSS display value of box or inline-box.

Initial valueinline-axis (horizontal in XUL)
Applies toelements with a CSS display value of box or inline-box
Inheritedno
Mediavisual
Computed valueas specified
Animation typediscrete
Canonical orderthe unique non-ambiguous order defined by the formal grammar

Syntax

The box-orient property is specified as one of the keyword values listed below.

Values

horizontal
The box lays out its contents horizontally.
vertical
The box lays out its contents vertically.
inline-axis (HTML)
The box displays its children along the inline axis.
block-axis (HTML)
The box displays its children along the block axis.

The inline and block axes are the writing-mode dependent keywords which, in English, map to horizontal and vertical respectively.

Formal syntax

horizontal | vertical | inline-axis | block-axis | inherit

Examples

<!DOCTYPE html>
<html>
  <head>
    <title>CSS box-orient example</title>
    <style>
      div.example {
        display: -moz-box;                /* Mozilla */
        display: -webkit-box;             /* WebKit */
        display: box;                     /* As specified */

        /* Children should be oriented vertically */
        -moz-box-orient: horizontal;      /* Mozilla */
        -webkit-box-orient: horizontal;   /* WebKit */
        box-orient: horizontal;           /* As specified */
      }
    </style>
  </head>
  <body>
    <div class="example">
      <p>I will be to the left of my sibling.</p>
      <p>I will be to the right of my sibling.</p>
    </div>
  </body>
</html>

The box-orient property will cause the above two <p> sections in the example to display in the same line, as shown here:

example.png

Notes

For XUL elements, if the orientation is set using the element's orient attribute, then the style is ignored.

Specifications

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes -webkit- 12 -webkit-

Yes -moz-

49 -webkit-

48 -webkit- 1

No Yes -webkit-

3 -webkit-

1.1 -khtml-

FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? ? Yes -webkit-

Yes -moz-

49 -webkit-

48 -webkit- 1

?1 -webkit- ?

1. From version 48: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true). To change preferences in Firefox, visit about:config.

See also

box-direction, box-pack, box-align, flex-direction

Document Tags and Contributors

Last updated by: fscholz,