CSS align-content property sets the distribution of space between and around content items along a flexbox 's cross-axis or a grid 's block axis.

The interactive example below use Grid Layout to demonstrate some of the values of this property.

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

This property has no effect on single line flex containers (i.e. ones with flex-wrap: nowrap ).

句法

/* Basic positional alignment */
/* align-content does not take left and right values */
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 */
/* Normal alignment */
align-content: normal;
/* 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;
					

start

The items are packed flush to each other against the start edge of the alignment container in the cross axis.

end

The items are packed flush to each other against the end edge of the alignment container in the cross axis.

flex-start
The items are packed flush to each other against the edge of the alignment container depending on the flex container's cross-start side.
This only applies to flex layout items. For items that are not children of a flex container, this value is treated like start .
flex-end
The items are packed flush to each other against the edge of the alignment container depending on the flex container's cross-end side.
This only applies to flex layout items. For items that are not children of a flex container, this value is treated like end .
center

The items are packed flush to each other in the center of the alignment container along the cross axis.

normal
The items are packed in their default position as if no align-content value was set.
baseline
first baseline

last baseline
the baseline is the line upon which most letters "sit" and below which descenders extend.
Specifies participation in first- or last-baseline alignment: aligns the alignment baseline of the box’s first or last baseline set with the corresponding baseline in the shared first or last baseline set of all the boxes in its baseline-sharing group.
The fallback alignment for first baseline is start , the one for last baseline is end .
space-between

The items are evenly distributed within the alignment container along the cross axis. The spacing between each pair of adjacent items is the same. The first item is flush with the start edge of the alignment container in the cross axis, and the last item is flush with the end edge of the alignment container in the cross axis.

space-around

The items are evenly distributed within the alignment container along the cross axis. The spacing between each pair of adjacent items is the same. The empty space before the first and after the last item equals half of the space between each pair of adjacent items.

space-evenly

The items are evenly distributed within the alignment container along the cross axis. The spacing between each pair of adjacent items, the start edge and the first item, and the end edge and the last item, are all exactly the same.

stretch
If the combined size of the items along the cross axis is less than the size of the alignment container, any 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
Used alongside an alignment keyword. If the chosen keyword means that the item overflows the alignment container causing data loss, the item is instead aligned as if the alignment mode were start .
unsafe

Used alongside an alignment keyword. Regardless of the relative sizes of the item and alignment container and whether overflow which causes data loss might happen, the given alignment value is honored.

形式定义

初始值 normal
适用于 multi-line flex containers
继承 no
计算值 如指定
动画类型 discrete

形式句法

normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>

where
<baseline-position> = [ first | last ]? baseline
<content-distribution> = space-between | space-around | space-evenly | stretch
<overflow-position> = unsafe | safe
<content-position> = center | start | end | flex-start | flex-end

范例

CSS

#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;
}
					

HTML

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

JavaScript

var values = document.getElementById('values');
var display = document.getElementById('display');
var container = document.getElementById('container');
values.addEventListener('change', function (evt) {
  container.style.alignContent = evt.target.value;
});
display.addEventListener('change', function (evt) {
  container.className = evt.target.value;
});
					

结果

规范

规范 状态 注释
CSS Box Alignment Module Level 3
The definition of 'align-content' in that specification.
工作草案 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.
候选推荐 初始定义
初始值 normal
适用于 multi-line flex containers
继承 no
计算值 如指定
动画类型 discrete

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

Support in Flex layout

更新 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
Supported in Flex Layout Chrome 完整支持 29 Edge 完整支持 12 Firefox 完整支持 28
完整支持 28
preference (needs to be set to ). To change preferences in Firefox, visit about:config.
IE 完整支持 11 Opera 完整支持 12.1 Safari 完整支持 9 WebView Android 完整支持 4.4 Chrome Android 完整支持 29 Firefox Android 完整支持 28
完整支持 28
preference (needs to be set to ). To change preferences in Firefox, visit about:config.
Opera Android 完整支持 12.1 Safari iOS 完整支持 9 Samsung Internet Android 完整支持 2.0
baseline Chrome 完整支持 57 Edge 完整支持 79 Firefox 完整支持 45 IE 不支持 No Opera 完整支持 44 Safari 完整支持 9 WebView Android 完整支持 57 Chrome Android 完整支持 57 Firefox Android 完整支持 45 Opera Android 完整支持 43 Safari iOS 完整支持 9 Samsung Internet Android 完整支持 7.0
first baseline and last baseline Chrome 不支持 No Edge 不支持 No Firefox 完整支持 52 IE 不支持 No Opera 不支持 No Safari 完整支持 11 WebView Android 不支持 No Chrome Android 不支持 No Firefox Android 完整支持 52 Opera Android 不支持 No Safari iOS 完整支持 11 Samsung Internet Android 不支持 No
left and right Chrome 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Edge 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Firefox 不支持 52 — 60 注意事项
不支持 52 — 60 注意事项
注意事项 align-content no longer accepts the left and right
IE 不支持 No Opera 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Safari 不支持 No WebView Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Chrome Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Firefox Android 不支持 52 — 60 注意事项
不支持 52 — 60 注意事项
注意事项 align-content no longer accepts the left and right
Opera Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Safari iOS 不支持 No Samsung Internet Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
safe and unsafe Chrome 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Edge 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Firefox 完整支持 63 IE 不支持 No Opera 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Safari 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
WebView Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Chrome Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Firefox Android 完整支持 63 Opera Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Safari iOS 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Samsung Internet Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
space-evenly Chrome 完整支持 60 Edge 完整支持 79 Firefox 完整支持 52 IE 不支持 No Opera 完整支持 47 Safari 完整支持 11 WebView Android 完整支持 60 Chrome Android 完整支持 60 Firefox Android 完整支持 52 Opera Android 完整支持 44 Safari iOS 完整支持 11 Samsung Internet Android 完整支持 8.0
start and end Chrome 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Edge 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Firefox 完整支持 45 IE 不支持 No Opera 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Safari 不支持 No WebView Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Chrome Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Firefox Android 完整支持 45 Opera Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
Safari iOS 不支持 No Samsung Internet Android 不支持 No 注意事项
不支持 No 注意事项
注意事项 This value is recognized, but has no effect.
stretch Chrome 完整支持 57 Edge 完整支持 79 Firefox 完整支持 52 IE 不支持 No Opera 完整支持 44 Safari 完整支持 9 WebView Android 完整支持 57 Chrome Android 完整支持 57 Firefox Android 完整支持 52 Opera Android 完整支持 43 Safari iOS 完整支持 9 Samsung Internet Android 完整支持 7.0

图例

完整支持

完整支持

不支持

不支持

见实现注意事项。

见实现注意事项。

用户必须明确启用此特征。

用户必须明确启用此特征。

要求使用供应商前缀或不同名称。

要求使用供应商前缀或不同名称。

Support in Grid layout

更新 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
Supported in Grid Layout Chrome 完整支持 57 Edge 完整支持 16 Firefox 完整支持 52 IE 不支持 No Opera 完整支持 44 Safari 完整支持 10.1 WebView Android 完整支持 57 Chrome Android 完整支持 52 Firefox Android 完整支持 52 Opera Android 完整支持 43 Safari iOS 完整支持 10.3 Samsung Internet Android 完整支持 6.2

图例

完整支持

完整支持

不支持

不支持

另请参阅

元数据

  • 最后修改:

Copyright  © 2014-2026 乐数软件    

工业和信息化部: 粤ICP备14079481号-1