小编典典

我怎样才能让 Flexbox 孩子 100% 的高度是他们的父母?

all

我正在尝试填充 Flexbox 内的弹性项目的垂直空间。

.container {

  height: 200px;

  width: 500px;

  display: flex;

  flex-direction: row;

}

.flex-1 {

  width: 100px;

  background-color: blue;

}

.flex-2 {

  position: relative;

  flex: 1;

  background-color: red;

}

.flex-2-child {

  height: 100%;

  width: 100%;

  background-color: green;

}


<div class="container">

  <div class="flex-1"></div>

  <div class="flex-2">

    <div class="flex-2-child"></div>

  </div>

</div>

这是JSFiddle

flex-2-child不填充所需的高度,除非在以下两种情况下:

  1. flex-2高度为 100%(这很奇怪,因为弹性项目默认为 100% + 它在 Chrome 中是错误的)
  2. flex-2-child有一个绝对位置,这也很不方便

目前这在 Chrome 或 Firefox 中不起作用。


阅读 178

收藏
2022-03-03

共1个答案

小编典典

采用align-items: stretch

与 David Storey 的回答类似,我的解决方法是:

.flex-2 {
    display: flex;
    align-items: stretch;
}

注意height: 100%应该从子组件中移除(见注释)。

或者align-items,您可以align-self仅在.flex-2-child要拉伸的项目上使用。

2022-03-03