flex确保 footer 始终处于页面的底部
html{
height: 100%;
}
body{
display: flex;
flex-direction: column;
height: 100%;
}
现在,我们需要调整各个区域占用的页面空间,我们将通过flex 属性来达到这一目的,该属性实际包含了三个参数,分别是:
flex-grow:元素在同一容器中对可分配空间的分配比率,及扩展比率
flex-shrink:如果空间不足,元素的收缩比率
flex-basis:元素的伸缩基准值
我们希望 header 和footer 只占用他们应该占用的空间,将剩余的空间全部交给主体内容区域
header{
/* 我们希望 header 采用固定的高度,只占用必须的空间 /
/ 0 flex-grow, 0 flex-shrink, auto flex-basis /
flex: 0 0 auto;
}
.main-content{
/ 将 flex-grow 设置为1,该元素会占用所有的可使用空间
而其他元素该属性值为0,因此不会得到多余的空间*/
/* 1 flex-grow, 0 flex-shrink, auto flex-basis /
flex: 1 0 auto;
}
footer{
/ 和 header 一样,footer 也采用固定高度*/
/* 0 flex-grow, 0 flex-shrink, auto flex-basis */
flex: 0 0 auto;
}