我使用flexbox构建布局;获取页面级页眉和页脚以保持原位很容易,因此可以在页眉和页脚之间的区域显示列。将固定页脚添加到已由页面级页眉和页脚限定的内容中
<div class="vbox fill" >
<header class="header">
</header>
<div class="hbox expand no-padding no-margin">
<div class="column1 vbox"></div>
<div class="column2 vbox"></div>
<div class="content vbox">
Content Here
</div>
<div class="column4 vbox"></div>
<div class="column5 vbox"></div>
</div>
<footer class="footer">
</footer>
</div>
CSS:
.vbox {
display: flex;
flex-direction: column;
margin: 0;
padding: 0;
}
.hbox {
display: flex;
flex-direction: row;
margin: 0;
padding: 0;
}
.expand {
flex: 1 1 100%;
width: 100%;
height: 1%;
}
.fill {
height: 100vh;
}
现在我想显示的内容,但有一个 “页脚” 留在地方里面的内容:
我已经设法在那里得到一个红色的页脚,而黄色的内容填满了屏幕的其余部分,但是当黄色的div由于太多的数据而膨胀时,它会将红色的div推出屏幕wi一个滚动条。
这是我到目前为止已经完成(这个网站现在坐在这里的Content Here
节)
CSS:
.row1 {
flex: 1 1 auto;
background-color: yellow;
}
.row2 {
flex: 0 0 50px;
background-color: red;
}
HTML:
<div class="row1" *contentItem>
TEST1
</div>
<div class="row2" *contentItem>
TEST2
</div>
黄色div显然应该限制在某个h八,但我应该设置多少? 100vh
不是一个选项,因为黄色和红色div由页眉和页脚限定,并且100vh
只需使黄色div与页面大小相同,而不考虑页面级页眉和页脚,该页面级别页眉和页脚也滚动出红色栏视图。
关于如何在黄色div展开时保持红色div不被屏幕推出的任何想法?
编辑:
这个技巧似乎使其工作,不知道为什么1%的事情使得它的工作:
.row1 {
flex: 1 1 auto;
overflow: auto;
height: 1%;
}
.row2 {
flex: 0 0 auto;
}
是的,这正是我正在寻找的。首先需要消化CSS,我对flexbox相当陌生 –
@JanVladimirMostert好...只是添加了一些解释。让我知道如果你需要更多的信息 – LGSon
我得到它与1%的高度+ overlow自动黑客工作,不知道为什么它的作品。我会研究你的解决方案,并恰当地实施它。 –