CSS - box-pack

See Flexbox for more information.



div.example {
  border-style: solid;

  display: -moz-box; /* Mozilla */
  display: -webkit-box; /* WebKit */

  /* Make this box taller than the children, 
     so there is room for the box-pack */
  height: 300px;
  /* Make this box wide enough to show the contents 
     are centered horizontally */
  width: 300px;
  /* Children should be oriented vertically */
  -moz-box-orient: vertical; /* Mozilla */
  -webkit-box-orient: vertical; /* WebKit */

  /* Align children to the horizontal center of this box */
  -moz-box-align: center; /* Mozilla */
  -webkit-box-align: center; /* WebKit */

  /* Pack children to the bottom of this box */
  -moz-box-pack: end;             /* Mozilla */
  -webkit-box-pack: end;          /* WebKit */

div.example p {
  /* Make children narrower than their parent,
     so there is room for the box-align */
  width: 200px;
<div class="example">
  <p>I will be second from the bottom of div.example, centered horizontally.</p>
  <p>I will be on the bottom of div.example, centered horizontally.</p>


/* Keyword values */
box-pack: start;
box-pack: center;
box-pack: end;
box-pack: justify;

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


The box packs contents at the start, leaving any extra space at the end.
The box packs contents in the center, dividing any extra space equally between the start and the end.
The box packs contents at the end, leaving any extra space at the start.
The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the value as if it were start.

Formal syntax

start <a title="Single bar" href="css/value_definition_syntax#single_bar">|</a> center <a title="Single bar" href="css/value_definition_syntax#single_bar">|</a> end <a title="Single bar" href="css/value_definition_syntax#single_bar">|</a> justify


The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. See Flexbox for more about the properties of flexbox elements.

The direction of layout depends on the element's orientation: horizontal or vertical.

Initial valuestart
Applies toelements with a CSS display value of -moz-box, -moz-inline-box, -webkit-box or -webkit-inline-box
Computed valueas specified
Canonical orderthe unique non-ambiguous order defined by the formal grammar

Browser Compatibility  

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes)-webkit (Yes)-moz[1] No support (Yes)-webkit 1.1-khtml
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? (Yes)-moz[1] No support ? 1.0-webkit

[1] In addition to the -moz prefixed support, Gecko 48.0 (Firefox 48.0 / Thunderbird 48.0 / SeaMonkey 2.45) added support for a -webkit prefixed version of the property for web compatibility reasons behind the preference layout.css.prefixes.webkit, defaulting to false. Since Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46) the preference defaults to true.


The edge of the box designated the start for packing purposes depends on the box's orientation and direction:

  Normal Reverse
Horizontal left right
Vertical top bottom

The edge opposite to the start is designated the end.

If the packing is set using the element's pack attribute, then the style is ignored.

See Also  

box-orient, box-direction, box-align


This property is non-standard, though a similar property appeared in an early draft of CSS3 Flexbox, which has been superseded in newer versions of the specification.


© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

CSS CSS Property CSS Reference Layout NeedsBrowserCompatibility NeedsMobileBrowserCompatibility Non-standard