我有三个div使用display:flex。
并排这些div中的内容具有不同的高度,但我想要的是在每个div中创建一个始终位于底部的链接。
----------- ----------- -----------
| img | | img | | img |
| heading 1 | | heading 3 | | heading 3 |
| paragraph | | paragraph | | paragraph |
| paragraph | | | | paragraph |
| | | | | paragraph |
| link | | link | | link |
----------- ----------- -----------
这样,链接将始终排列在一起。
答案 0 :(得分:9)
您可以将display
的{{1}}更改为.content
,然后添加flex
以使内容从上到下流动。要将子锚元素放在底部,只需向其添加flex-direction: column
:
margin-top: auto
答案 1 :(得分:7)
以下是两种方法:
嵌套Flexbox
.col {
flex: 1;
display: flex; /* create nested flex container */
flex-wrap: wrap; /* enable flex items to wrap */
justify-content: center; /* center flex items on each line */
}
.col > a { align-self: flex-end; } /* position link always at bottom */
绝对定位
.col {
flex: 1;
position: relative; /* establish containing block (nearest positioned ancestor)
for absolute positioning */
}
.col > a {
position: absolute;
bottom: 5px; /* adjust this value to move link up or down */
left: 50%; /* center link horizontally */
transform: translateX(-50%); /* center link horizontally */
}
第三种方法涉及将flex-direction
切换为column
。但是,在某些情况下,更改弯曲方向不是可接受的选项,因为它会更改布局的行为。 (此处未详细说明此方法,因为它已在另一个答案中发布。)