视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
PC端无论页面有没有完全撑开把footer保持在最底部(不用定位)
2020-11-02 22:08:49 责编:小采
文档


最近在写项目,有的页面没有占到一屏,然后footer也就是底部就靠上了,这样很影响美观,于是在网上找了找,下面是我的成果

解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可以建立具有适应性的布局。

下面我们代码走起来

<body>
	<p id="header">...</p>
	<p id="content">...</p>
	<p class="footer">...</p>
	</body>
html{
 height: 100%;
}

body{
 display: flex;
 flex-direction: column;
 height: 100%;
}

#header{
 /* 我们希望 header 采用固定的高度,只占用必须的空间 */
 /* 0 flex-grow, 0 flex-shrink, auto flex-basis */
 flex: 0 0 auto;
}

#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;
}

我们利用flex-deraction:column将页面结构竖向排列,(flex默认是横向排列的),同时,将html 和 body 元素的高度设置为100%,使其充满整个屏幕。  

上面用到了flex包含的3个属性,我来介绍一下他们的用途:

  • flex-grow:元素在同一容器中对可分配空间的分配比率,及扩展比率

  • flex-shrink:如果空间不足,元素的收缩比率

  • flex-basis:元素的伸缩基准值

  • 也就是header 和footer 只占用他们应该占用的空间,将剩余的空间全部交给主体内容区域

    好啦,到这里,无论页面内容是多是少,都可以保证footer乖乖的待在底部了。

    总结:

    下载本文
    显示全文
    专题