源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[CSS] stricky footer的三种解决方案详解

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-2-6 15:26:34 | 显示全部楼层 |阅读模式
这篇文章主要介绍了stricky footer的三种解决方案详解的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

stricky footer设计是最古老和最常见的效果之一,我们都曾经历过类似的情景:

如果页面内容不够长的时候,页脚块粘贴在底部;如果内容足够长时,页脚块会被内容向下推送。

这些天做vue+express实战的练习,跟着黄轶老师倒是认识了stricky footer,就认真的了解学习了一下,但是前两天的问题,今天几种解决方案的详细情况竟然有些模糊,所以还是记录下来吧!求学之路就是这样,不断地积累和重复。

2018020615214237.jpg

2018020615214237.jpg

上图底部的 x 就用到了经典的stricky footer,单页面内容足够时,它会向下推送;当页面内容没有撑满整个屏幕时,它就固定在底部。

而不是像下图这样:

2018020615214338.jpg

2018020615214338.jpg  

问题

如果此前不知道stricky footer,使用fixed固定在底部的话,像下图这样

2018020615214339.jpg

2018020615214339.jpg

position: fixed;
width: 32px;
height: 32px;
bottom: 20px;
left: calc(50% - 16px);
font-size: 32px;

那样 x 会覆盖内容,显然是不符合要求的不实际的,而且不美观的。

所以经典的stricky footer 广为所用,适用情景也非常多,前几天回顾第一次做的项目,发现很多地方适用。

解决方案

stricky footer主要有三种解决方案,我们构建一点简单的代码

<body>
  <div class="content"></div>
  <div class="footer"></div>
</body>

1.为内容区域添加最小的高度

这个方法主要是用视口vh来计算整体视窗的高度,然后减去底部footer的高度,从而得出内容区域的最小高度

.content{
  min-height:calc(100vh - `footer的高度`);
  box-sizing:border-box;
}

这种方法很简单,但是如果页面的footer高度不同,每个页面都要重新计算一次,所以并不推荐

2.使用flex布局

flex布局如今在移动端布局可谓是占有一片天地,广为所用。

我们通常利用flex布局对视窗宽度进行分割,一侧是固定宽度,另一侧是自适应宽度。同样的,flex布局当然也可以对对视窗高度进行分割,footer的flex为0,这样flex获得其固有的高度;content的flex为1。这样它会充满除去footer的其余部分

body{
  display:flex;
  flex-flow:column;
  min-height:100vh;
}
.content{
  flex:1;
}
.footer{
  flex:0;
}

这种方法较为推荐

3.在content的外面添加一个wrapper层

这种方法也是黄轶老师使用的方法,在content的外面添加一个wrapper层包裹

<body>
  <div class="content-wrapper clearfix">
    <div class="content"></div>
  </div>
  <div class="footer"></div>
</body>

这种做法为了保证兼容性,我们通常会在wrapper层上添加一个clearfix类,

html,body,.content-wrapper{
  height:100%
}
body > .content-wrapper{
  height:auto;
  min-height:100%;
}
.content{
  padding-bottom:150px //与footer的高度相同
}
.footer{
  position:relative;
  margin-top:-150px; // -`footer高度`
  height:150px;
  clear:both;
}
.clearfix{
  display:inline-block;
}
.clearfix{
  content:"";
  display:block;
  height:0;
  clear:both;
  visibility: hidden;
}

这样就完成了stricky footer,这种方法也比较推荐,但是加入的代码有点多,而且改变了HTML结构。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

回复

使用道具 举报

11

主题

2万

回帖

300

积分

中级会员

Rank: 3Rank: 3

积分
300
发表于 2022-8-14 11:42:08 | 显示全部楼层
谢谢分享,先下来用用
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2022-8-21 15:50:29 | 显示全部楼层
66666666666666666666
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

79

积分

注册会员

Rank: 2

积分
79
发表于 2023-5-15 09:26:31 | 显示全部楼层
先把创新班才能下班才能下班
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

473

积分

中级会员

Rank: 3Rank: 3

积分
473
发表于 2023-10-2 12:25:19 | 显示全部楼层
哦哦哦哦哦哦哦哦哦
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-21 06:04:11 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-11-15 00:48:39 | 显示全部楼层
加快速度很快就撒谎
回复 支持 反对

使用道具 举报

6

主题

1万

回帖

174

积分

注册会员

Rank: 2

积分
174
发表于 2024-3-1 11:08:35 | 显示全部楼层
源码源码源码源码源码源码源码源码源码源码源码源码源码
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

362

积分

中级会员

Rank: 3Rank: 3

积分
362
发表于 2024-8-2 19:16:43 | 显示全部楼层
谢谢小Y分享
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-8-3 15:55:17 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-28 04:25 , Processed in 0.088691 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表