Web/CSS/box-pack

From Get docs

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 -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.

/* 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 direction of layout depends on the element's orientation: horizontal or vertical.

Syntax

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

Values

start
The box packs contents at the start, leaving any extra space at the end.
center
The box packs contents in the center, dividing any extra space equally between the start and the end.
end
The box packs contents at the end, leaving any extra space at the start.
justify
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.

Notes

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.

Formal definition

Initial value start
Applies to elements with a CSS display value of -moz-box, -moz-inline-box, -webkit-box or -webkit-inline-box
Inherited no
Computed value as specified
Animation type discrete

Formal syntax

start | center | end | justify

Examples

Examples of box-pack

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>
</div>


Specifications

Not part of any standard.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

box-pack

Deprecated'Non-standard'

Chrome Full support 1

Prefixed'

Full support 1

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Edge Full support 12

Prefixed'

Full support 12

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Firefox Full support 1

Prefixed'

Full support 1

Prefixed'

Prefixed' Implemented with the vendor prefix: -moz- Full support 49

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- Full support 48

Prefixed' Disabled'

Prefixed' Implemented with the vendor prefix: -webkit- Disabled' 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.

IE

No support No

Opera Full support 15

Prefixed'

Full support 15

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Safari Full support 3

Prefixed'

Full support 3

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- No support 1.1 — 3

Prefixed'

Prefixed' Implemented with the vendor prefix: -khtml-

WebView Android Full support ≤37

Prefixed'

Full support ≤37

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Chrome Android Full support 18

Prefixed'

Full support 18

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Firefox Android Full support 4

Prefixed'

Full support 4

Prefixed'

Prefixed' Implemented with the vendor prefix: -moz- Full support 49

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- Full support 48

Prefixed' Disabled'

Prefixed' Implemented with the vendor prefix: -webkit- Disabled' 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.

Opera Android Full support 14

Prefixed'

Full support 14

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Safari iOS Full support 1

Prefixed'

Full support 1

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Samsung Internet Android Full support 1.0

Prefixed'

Full support 1.0

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.'
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.'
Deprecated. Not for use in new websites.
User must explicitly enable this feature.'
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also