当前位置:  开发笔记 > 编程语言 > 正文

将元素与每个弹性框的中心底部对齐

如何解决《将元素与每个弹性框的中心底部对齐》经验,为你挑选了2个好方法。

我有3个div使用display:flex.

这些div中的内容具有不同的高度,但我想要的是在每个div中创建一个始终位于底部的链接.

 -----------   -----------   -----------
|    img    | |    img    | |    img    |
| heading 1 | | heading 3 | | heading 3 |
| paragraph | | paragraph | | paragraph |
| paragraph | |           | | paragraph |
|           | |           | | paragraph |
|   link    | |   link    | |   link    |
 -----------   -----------   ----------- 

这样链接将始终排列.

JSFiddle代码



1> Josh Crozier..:

你可以改变display.contentflex,再加入flex-direction: column以使从顶部的内容流至底部.为了将子锚元素放在底部,只需添加添加margin-top: auto:

更新的示例

.content {
  display: flex;
  flex-direction: column;
}
.content a {
  margin-top: auto;
}



2> Michael_B..:

这有两种方法:

嵌套的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 */

演示1


绝对定位

.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 */
}

演示2


第三种方法涉及切换flex-directioncolumn.但是,在某些情况下,更改弯曲方向不是可接受的选项,因为它会更改布局的行为.(此处未详细说明此方法,因为它已在另一个答案中发布.)

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有