事实是align-content
当主弹性容器切换到时“起作用”display: block
只是一个浏览器错误。
它根据需要将弹性项目移至底部,但是仅在火狐浏览器中.
在 Chrome 中,它不执行任何操作,这是正确的行为(根据规范)。
在 IE11 中,它将项目移至顶部(也是不合格的)。
这些是错误和不一致之处,不应依赖它们作为指导,因为它们无助于解释如何align-content
物业工程。
In a 单线柔性容器,就像问题中的那个人一样,align-content
没有影响。要使用的属性是align-items
.
In a 多行柔性容器,要使用的属性是align-content
.
另外,align-self
财产密切相关align-items
。其中一个旨在覆盖另一个。它们一起发挥作用。
从规格来看:
8.3.交叉轴对准:align-items and align-self特性 https://www.w3.org/TR/css-flexbox-1/#align-items-property
align-items
设置所有 Flex 容器项目的默认对齐方式,包括匿名 Flex 项目。align-self
允许为各个 Flex 项目覆盖此默认对齐方式。
8.4.包装柔性生产线:align-content财产 https://www.w3.org/TR/css-flexbox-1/#align-content-property
The align-content
当横轴上有额外空间时,属性会在 Flex 容器内对齐 Flex 容器线,类似于justify-content
在主轴内对齐各个项目。请注意,此属性对单行 Flex 容器没有影响。
就这个问题而言,忘记align-content
。这是没有用的(除非你的弹性物品包裹起来)。
只需使用align-items: flex-end
(or align-self: flex-end
on the span
's):
body {
background-color: grey;
}
.column {
display: flex;
flex-flow: column nowrap;
justify-content: flex-start;
align-items: stretch;
background-color: green;
}
.row {
display: flex;
flex-flow: row wrap;
justify-content: space-around;
align-content: flex-end; /* will work when items have wrapped */
align-items: flex-end; /* adjusted; works when items in one line */
background-color: red;
}
.row-test {
min-height: 200px;
}
span {
width: 30%;
background-color: orange;
/* align-self: flex-end; this would also work on single line container */
}
<body class="column">
<section class="row row-test">
<span>Test Test Test Test Test Test Test Test Test</span>
<span>Test Test Test Test Test Test Test Test Test Test Test
Test Test Test Test Test Test Test Test Test Test Test</span>
</section>
</body>