之前,你可能会有点更准确?对我来说,它在你的Codepen中工作得很好。或者是粉红色的背景(在大屏幕上显示一些黑色)的问题?
一个建议,可能不是您的解决方案: Flexbox用于定义布局。我看到你给身体一个弯曲的方向:排,你给一些元素固定的高度。 而不是使用
.bottom {
height: 40px;
}
的,我建议使用:
flex: 0 0 40px;
的结果是一样的,但它可以防止小虫子或在未来怪异的行为。你的div class = top也一样。
关于您的问题,尝试以下方法:
body {
display: flex;
flex-direction: column;
}
.top {
flex: 0 0 40px;
}
.content {
flex: 1;
overflow-y: scroll;
}
.bottom {
flex: 0 0 40px;
}
确保您的.TOP,.bottom和。内容是在HTML中唯一和直接孩子。否则这将无法正常工作。
通过这种方式,顶部和底部的横条是固定的,而您的内容填充了中间的空间。
编辑: 要垂直对齐<div class="content">
中的内容,你应该添加到您的CSS。 (与上面的代码一起)
.content {
flex: 1;
overflow-y: scroll; //only if you want fixed footer
display: flex;
flex-direction: row; //column should also do fine, since you only have one child element
justify-content: center;
align-items: center;
}
.content-inner { //the only and direct child of content
margin: auto;
}
可能的指导:[Flexbox代码可用于除Safari之外的所有浏览器。为什么?](http://stackoverflow.com/a/35137869/3597276) –