css - 高度为 100% 的 div 不会填充使用 flex 定位的父级

标签 css flexbox

<分区>

我试着用一个 div 来填充它的父元素,它已经用 flexbox 布局定位了。 正如您在下面的 jsfiddle 中看到的,div 的高度没有填充父级的高度。

为什么不起作用? (来自@mrmcgreg 的更新:它不适用于 Chrome 但适用于 FF)

https://jsfiddle.net/z73pjtox/1/

html:

<header id="header">
  header
</header>

<div id="content">
      <div>
        height: 100%
      </div>
</div>

CSS:

html, body {
  height: 100%;
}
body {
  margin: 0;
  display: flex;
  flex-flow: column;
}
#header {
  flex: 0 1 auto;
  background-color: green;
}
#content {
  flex: 1 1 auto;
  background-color: blue;
}
#content div {
  height: 100%;
  background-color: red;
}

最佳答案

我检查了你的 fiddle 。似乎在 Mac 上的 Firefox 47 中工作。您使用的是什么浏览器?

我 fork 了 fiddle 并更改了一些设置以确保它按预期运行,但它的工作原理是一样的。然而,在旧版本的 Safari 中,它在这里不起作用。也许尝试添加供应商前缀,看看是否有帮助?

检查这个link on CSS Tricks对于所有前缀。

fiddle

html, body {
  height: 100%;
}
body {
  margin: 0;
  display: flex;
  flex-direction: column;
}
#header {
  height:30px;
  background-color: green;
}
#content {
  display:flex;
  flex-direction:column;
  flex:1;
  background-color: blue;
}
#content div {
  flex:1;
  height: 100%;
  background-color: red;
}

关于css - 高度为 100% 的 div 不会填充使用 flex 定位的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38674022/

相关文章:

javascript - 在小视口(viewport)上隐藏字段,单击按钮再次显示

jquery - 动态生成的 <div> jQuery 切换行为问题

css - flex 的 chalice 布局

html - CSS Flexbox 组 2 flex 元素

css - 页面在 iPad View 中看起来不同 - CSS 问题

css - 动画线性 css 背景在 firefox 中不起作用

javascript - 移动响应表单不起作用

html - 为什么带有 "display: flex"和 "position: fixed"的 div 没有占据全部可用宽度?

html - 当 flexbox 元素以列模式包装时,容器不会增加其宽度

html - 为什么百分比填充/边距不适用于 Firefox 和 Edge 中的 flex 元素?