【问题标题】:flex in a row, but have elements fill parent's height连续弯曲,但让元素填充父级的高度
【发布时间】:2018-10-13 02:51:08
【问题描述】:

我的布局看起来像这样:

<div style="display: flex; flex-direction: row;height:100%;">
  <div style="width:250px"></div>
  <div style="flex:1;height:100%"></div>
</div>

第二个内部 div 垂直增长,所以我需要该 div 滚动(但不是左侧内部 div)。这在 Firefox 上效果很好,但在 Chrome 上,第二个内部 div 会包裹到内容的高度并在屏幕外不断增长。据我所知,这是因为在 Chrome 中,高度 100% 仅在父级具有定义的高度时才有效。

如何让第二个内部 div flex 填充宽度并匹配父级的高度?

【问题讨论】:

    标签: html css flexbox


    【解决方案1】:

    .container {
      display: flex;
      flex-direction: row;
      height: 100vh;
    }
    
    .container > div:first-child {
      flex: 0 0 250px;
      align-self: flex-start;
      background-color: aqua;
    }
    
    .container > div:last-child {
      flex: 1;
      overflow: auto;
      background-color: pink;
    }
    
    body {
      margin: 0;
    }
    <div class="container">
      <div>Item One</div>
      <div>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>Item Two<br>
      </div>
    </div>

    【讨论】:

    • 这几乎可以工作,但我不能在 .container 上使用 100vh,因为外部 div 是子视图。有什么办法可以解决这个问题?谢谢!
    • 你能发布一个包含所有相关代码的演示吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多