The CSS align-items
property defines how the browser distributes space between and around flex items along the cross-axis of their container. This means it works like justify-content
but in the perpendicular direction.
The difference to the align-content
property is that it specifies the alignment of the items within the current flex container's line, whereas align-content
specifies the alignment of the lines themselves.
Initial value | stretch |
---|---|
Applies to | flex containers |
Inherited | no |
Media | visual |
Computed value | as specified |
Animation type | discrete |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
See Using CSS flexible boxes for more properties and information.
/* 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;
flex-start
flex-end
center
baseline
stretch
flex-start | flex-end | center | baseline | stretch
#container { display: flex; height:200px; width: 240px; flex-wrap: wrap; align-items: flex-end; /* Can be changed in the live sample */ background-color: #8c8c8c; } div > div { border: 2px solid #8c8c8c; width: 50px; } #item1 { background-color: #8cffa0; min-height: 30px; } #item2 { background-color: #a0c8ff; min-height: 50px; } #item3 { background-color: #ffa08c; min-height: 40px; } #item4 { background-color: #ffff8c; min-height: 60px; } #item5 { background-color: #ff8cff; min-height: 70px; } #item6 { background-color: #8cffff; min-height: 50px; }
<div id="container"> <div id="item1"></div> <div id="item2"></div> <div id="item3"></div> <div id="item4"></div> <div id="item5"></div> <div id="item6"></div> </div> <select id="itemsAlignment"> <option value="flex-start">flex-start</option> <option value="flex-end" selected>flex-end</option> <option value="center">center</option> <option value="baseline">baseline</option> <option value="stretch">stretch</option> </select>
Specification | Status | Comment |
---|---|---|
CSS Flexible Box Layout Module The definition of 'align-items' in that specification. | Candidate Recommendation | Initial definition |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 21.0-webkit[1] |
(Yes)-webkit (Yes) | 20.0 (20.0)[2] | 11.0[3] | 12.10 | 7.0-webkit |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | 4.4 | (Yes) |
(Yes)-webkit (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.
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/align-items