html - 如何使用 flex 将 div 高度设置为其容器的 100% 并保持垂直对齐居中?

标签 html css flexbox

我尝试使用 flexbox 将文本和按钮居中,并保持列相等。但是我很难将列高设置为其容器的 100%。当我将高度设置为 100% 时,它的垂直对齐方式不再位于中间。我不想使用表或 javascript 获得结果。

.container {
  display:flex;
  border-top: solid 1px;
  border-bottom: solid 1px;
  align-items: center;
  height:48px;
}
.column {
  flex-basis:100%;
  text-align:center;
}
.mid-col {
  border-left:solid 1px;
  border-right:solid 1px;
}
<div class="container">
  <div class="column">
    <div>50</div>
    <div>Following</div>
  </div>
  <div class="column mid-col">
    <div>50</div>
    <div>Followers</div>
  </div>
  <div class="column">
    <button>Follow</button>
  </div>  
</div>

JS fiddle :fiddle

最佳答案

如果你想让 column 获得 container 的 100% 高度,你必须使用嵌套的 flexbox - 添加这个:

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

column 并从 container 中删除 align-items: center(这样默认的 align-items: stretch 可能会生效)。

(您现在无法为 column 设置 100% 高度,因为您已将 align-items: center 应用于您的 container)

请看下面的演示:

.container {
  display: flex;
  border-top: solid 1px;
  border-bottom: solid 1px;
  height: 48px;
}
.column {
  flex-basis: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.mid-col {
  border-left: solid 1px;
  border-right: solid 1px;
}
<div class="container">
  <div class="column">
    <div>50</div>
    <div>Following</div>
  </div>
  <div class="column mid-col">
    <div>50</div>
    <div>Followers</div>
  </div>
  <div class="column">
    <button>Follow</button>
  </div>
</div>

关于html - 如何使用 flex 将 div 高度设置为其容器的 100% 并保持垂直对齐居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40994467/

相关文章:

javascript - 聪明的 "add tag"需要 javascript 帮助

html - 试图将 flex 元素对齐到底部,但它们却对齐到文本的第一行

iphone - IBM Worklight - 如何禁用 native 设备功能?

html - 主页 build ——如何使用CSS更高效?

html - 使用 flexbox 将元素左对齐和居中对齐

html - Bootstrap 4 Flexbox 将屏幕分成 4 部分

HTML5/Bootstrap 格式 - 没有填充/边距的图像

html - 将嵌入式谷歌地图设置为在页面加载时缩小

javascript - 使用 jquery 动态创建模态

html - 在单独的 .css 样式表中正确使用自定义字体