CSS - align-items
The CSS align-items
property aligns flex items of the current flex line the same way as justify-content
but in the perpendicular direction.
Syntax
/* Align to cross-start */ align-items: flex-start; /* Align to cross-end */ align-items: flex-end; /* Center items in the cross-axis */ align-items: center; /* Align the items' baselines */ align-items: baseline; /* Stretch the items to fit */ align-items: stretch; /* Global values */ align-items: inherit; align-items: initial; align-items: unset;
Values
flex-start
- The cross-start margin edge of the flex item is flushed with the cross-start edge of the line.
flex-end
- The cross-end margin edge of the flex item is flushed with the cross-end edge of the line.
center
- The flex item's margin box is centered within the line on the cross-axis. If the cross-size of the item is larger than the flex container, it will overflow equally in both directions.
baseline
- All flex items are aligned such that their baselines align. The item with the largest distance between its cross-start margin edge and its baseline is flushed with the cross-start edge of the line.
stretch
- Flex items are stretched such as the cross-size of the item's margin box is the same as the line while respecting width and height constraints.
-
Formal syntax
flex-start <a title="Single bar" href="css/value_definition_syntax#single_bar">|</a> flex-end <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> baseline <a title="Single bar" href="css/value_definition_syntax#single_bar">|</a> stretch
Description
The CSS align-items
property aligns flex items of the current flex line the same way as justify-content
but in the perpendicular direction.
Initial value | stretch |
---|---|
Applies to | flex containers |
Inherited | no |
Media | visual |
Computed value | as specified |
Animatable | no |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
See Using CSS flexible boxes for more properties and information.
Browser Compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 21.0-webkit[1] | 20.0 (20.0)[2] | 11.0[3] | 12.10 | 7.0-webkit |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 4.4 | (Yes) | 20.0 (20.0)[2] | No support | 12.10 | 7.0-webkit | ? |
[1] Older versions of the spec treat absolute positioned children as though they are a 0 by 0 flex item. Later spec versions take them out of the flow and set their positions based on align and justify properties. Chrome implements the new behavior beginning with Chrome 52.
[2] To activate flexbox support in Firefox 18 and 19, the user has to visit about:config and change the value of the layout.css.flexbox.enabled
preference to true
. Multi-line flexbox has been supported since Firefox 28.
In addition to the unprefixed 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
.
[3] In Internet Explorer 10-11 (but not 12+), if column flex items have align-items: center;
set on them and their content is too large, they will overflow the bounds of their container. See Flexbug #2 for more info.
See Also
Specifications
Specification | Status | Comment |
---|---|---|
CSS Flexible Box Layout Module The definition of 'align-items' in that specification. |
Candidate Recommendation | Initial definition |
License
© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/css/align-items