The CSS align-content
property defines how the browser distributes space between and around content items along the cross-axis of their container, which is serving as a flexbox container.
/* Positional alignment */ align-content: center; /* Pack items around the center */ align-content: start; /* Pack items from the start */ align-content: end; /* Pack items from the end */ align-content: flex-start; /* Pack flex items from the start */ align-content: flex-end; /* Pack flex items from the end */ align-content: left; /* Pack items from the left */ align-content: right; /* Pack items from the right */ /* Baseline alignment */ align-content: baseline; align-content: first baseline; align-content: last baseline; /* Distributed alignment */ align-content: space-between; /* Distribute items evenly The first item is flush with the start, the last is flush with the end */ align-content: space-around; /* Distribute items evenly Items have a half-size space on either end */ align-content: space-evenly; /* Distribute items evenly Items have equal space around them */ align-content: stretch; /* Distribute items evenly Stretch 'auto'-sized items to fit the container */ /* Overflow alignment */ align-content: safe center; align-content: unsafe center; /* Global values */ align-content: inherit; align-content: initial; align-content: unset;
This property has no effect on single line flexible boxes.
Initial value | stretch |
---|---|
Applies to | multi-line 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 |
start
end
flex-start
start
.flex-end
end
.center
left
start
.right
start
.baseline
first baseline
last baseline
first baseline
is start
, the one for last baseline
is end
.space-between
space-around
space-evenly
stretch
auto
-sized items have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height
/max-width
(or equivalent functionality), so that the combined size exactly fills the alignment container along the cross axis.safe
start
.unsafe
flex-start | flex-end | center | space-between | space-around | space-evenly | stretch
#container { height:200px; width: 240px; align-content: center; /* Can be changed in the live sample */ background-color: #8c8c8c; } .flex { display: flex; flex-wrap: wrap; } .grid { display: grid; grid-template-columns: repeat(auto-fill, 50px); } div > div { box-sizing: border-box; border: 2px solid #8c8c8c; width: 50px; display: flex; align-items: center; justify-content: center; } #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; font-size: 30px; } select { font-size: 16px; } .row { margin-top: 10px; }
<div id="container" class="flex"> <div id="item1">1</div> <div id="item2">2</div> <div id="item3">3</div> <div id="item4">4</div> <div id="item5">5</div> <div id="item6">6</div> </div> <div class="row"> <label for="display">display: </label> <select id="display"> <option value="flex">flex</option> <option value="grid">grid</option> </select> </div> <div class="row"> <label for="values">align-content: </label> <select id="values"> <option value="normal">normal</option> <option value="stretch">stretch</option> <option value="flex-start">flex-start</option> <option value="flex-end">flex-end</option> <option value="center" selected>center</option> <option value="space-between">space-between</option> <option value="space-around">space-around</option> <option value="space-evenly">space-evenly</option> <option value="start">start</option> <option value="end">end</option> <option value="left">left</option> <option value="right">right</option> <option value="baseline">baseline</option> <option value="first baseline">first baseline</option> <option value="last baseline">last baseline</option> <option value="safe center">safe center</option> <option value="unsafe center">unsafe center</option> <option value="safe right">safe right</option> <option value="unsafe right">unsafe right</option> <option value="safe end">safe end</option> <option value="unsafe end">unsafe end</option> <option value="safe flex-end">safe flex-end</option> <option value="unsafe flex-end">unsafe flex-end</option> </select> </div>
Specification | Status | Comment |
---|---|---|
CSS Box Alignment Module Level 3 The definition of 'align-content' in that specification. | Working Draft | Adds the [ first | last ]? baseline, start, end, left, right, unsafe | safe values. |
CSS Flexible Box Layout Module The definition of 'align-content' in that specification. | Candidate Recommendation | Initial definition |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support |
29 21 -webkit- |
Yes Yes -webkit- |
28 49 -webkit- |
11 | 12.1 |
9 6.1 -webkit- |
space-evenly |
No | No | 52 | No | No | No |
start and end
|
Yes2 | No | Yes | No | Yes2 | ? |
left and right
|
Yes2 | No |
52 Yes2 |
No | Yes2 | ? |
baseline |
57 | No | Yes | No | 44 | ? |
first baseline and last baseline
|
No | No | 52 | No | No | ? |
stretch |
57 | No | 52 | No | 44 | ? |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic support | 4.4 | Yes |
Yes Yes -webkit- |
28 49 -webkit- |
11 | 12.1 |
9.2 7.1 -webkit- |
space-evenly |
No | No | No | 52 | No | No | No |
start and end
|
Yes2 | Yes2 | No | No | ? | Yes2 | ? |
left and right
|
Yes2 | Yes2 | No |
52 Yes2 |
No | Yes2 | ? |
baseline |
57 | 57 | No | Yes | No | 44 | ? |
first baseline and last baseline
|
No | No | No | 52 | No | No | ? |
stretch |
57 | 57 | No | 52 | No | 44 | ? |
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.
2. This value is recognized, but has no effect.
© 2005–2018 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-content