【问题标题】:Height 100% inside flex item弹性项目内部高度 100%
【发布时间】:2019-06-25 12:36:36
【问题描述】:

我的布局主要分为 3 个部分,中间的部分应该占据整个高度。确实如此。

但是,我需要一个额外的 div 来扮演背景的角色,问题就来了。孩子不想走 100% 的高度。

这里.body 是一个在内容不足时被拉伸的 div,而.bg-gray 是我想要获取其父级全高的那个。

有没有办法使用相对+绝对定位来实现这一点?

另外,我正在寻找我的问题的答案:为什么会这样。

html, body {
  padding: 0;
  margin: 0;
}

.container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.header {
  height: 50px;
  background-color: #e6e6e6;
}

.footer {
  height: 50px;
  background-color: #aaa444;
}

.body {
  flex: 1;
}

.bg-gray {
  background-color: #eee;
  min-height: 100%;
  flex: 1;
}
<div class="container">
  
  <div class="header">
 
  </div>
  
  <div class="body">

    <div class="bg-gray">
      <div>
        asdasd
      </div>
    </div>
    
  </div>
  
  
  <div class="footer">
 
  </div>
  
</div>

【问题讨论】:

  • 如果你改变 min-height by height(在 .container 内)它会起作用,这里是详细信息:stackoverflow.com/questions/56700510/…
  • 继续弯曲...它不是继承的。
  • @TemaniAfif 它不会改变任何东西。 heightmin-height 没有区别
  • 如果将容器的最小高度更改为高度(不是元素的最小高度)

标签: html css layout


【解决方案1】:

将弹性框应用到.body div。

.body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

html,
body {
  padding: 0;
  margin: 0;
}

.container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.header {
  height: 50px;
  background-color: #e6e6e6;
}

.footer {
  height: 50px;
  background-color: #aaa444;
}

.body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.bg-gray {
  background-color: darkgrey;
  min-height: 100%;
  flex: 1;
}

.bg-gray div {
  background: lightblue;
}
<div class="container">

  <div class="header">

  </div>

  <div class="body">

    <div class="bg-gray">
      <div>
        asdasd
      </div>
    </div>

  </div>


  <div class="footer">

  </div>

</div>

【讨论】:

  • 抱歉,这是不合适的,因为它破坏了我的其他布局 :) 我已经开始尝试了
  • 如您在问题中所说,让 .body 显示 flex 它的全高度让我们知道您的其他布局,以便我们可以修复您的其他布局中的任何中断
猜你喜欢
  • 2016-10-29
  • 1970-01-01
  • 2016-07-05
  • 2017-05-07
  • 2021-07-19
  • 2019-03-25
  • 2017-05-30
  • 1970-01-01
  • 2016-05-18
相关资源
最近更新 更多