1.上代码:
css部分
*{
padding: 0;
margin: 0;
}
html,body{
width: 100%;
height: 100%;
}
.page{
display: flex;
flex-direction: column;
height: 300px;
}
.page .header{
height: 40px;
background: rgba(0,0,0,0.6);
font-size:40px;
}
.page .content{
flex: 1;
border: 1px solid red;
overflow: auto;
}
.page .footer{
height: 40px;
background: rgba(0,0,0,0.6);
font-size:40px;
}
html部分
<div class="page">
<div class="header">
I am header
</div>
<div class="content">
I am content
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
<p>121212</p>
</div>
<div class="footer">
I am footer
</div>
</div>
注意:content区域的flex属性值为1,由该元素自动填充,page元素内剩下的空间。但头部,和底部是要固定高度的。另外,最重要的一点是在content元素上设置overflow:auto
属性,即当该区域的内容超出其高度时,由滑动滚动条来浏览观看。
2.注意:
在IOS移动端,尽量不要用fixed实现头部或底部固定的效果,因为问题比较多,解决方法:
- 用flex布局可实现头部,底部固定,代码开头已经给出。
-webkit-overflow-scrolling
CSS属性用来处理当overflow-y:scroll
,页面滑动时,很木的现象。-webkit-overflow-scrolling:touch
使得滑动具有回弹效果。