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

 找回密码
 立即注册
查看: 528|回复: 44

[CSS] 浅谈css sticker-footer 布局

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2017-11-6 14:46:48 | 显示全部楼层 |阅读模式
本篇文章主要介绍了css sticker-footer 布局,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过。它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部;如果内容足够长时,页脚块会被内容向下推送。这种效果不仅是无处不在,很受欢迎,而且实现起来看上去也非常容易。但实际上实现起来要比预期花的时间更多。此外,在CSS2.1中的解决方案中几乎都要给页脚设置一个固定高度。这是很脆弱的,很少是可行的。实际上实现这个效果过于复杂,而且还需要增加特定的标记和一些Hack手段。在CSS2.1中受到一些限制,但使用现代CSS,我们能把这个效果做得更好,那要如何做呢?

1、嵌套层级不深,可直接继承自 body width:100%; height:100%;

// html
<body>
    <div id="sticker">
        <div class="sticker-con">我是内容</div>
    </div>
    <div class="footer">我是脚</div>
</body>
// css
html,body{
    width:100%;
    height:100%;
}
#sticker{
    width:100%;
    min-height:100%;
}
.sticker-con{
    padding-bottom:40px;    // 40px 为 footer 本身高度
}
.footer{
    margin-top:-40px;  // 40px 为 footer 本身高度
}

2、嵌套层级很深,无法直接从上级继承 百分比高度的

第一种方法:给需要的 sticker-footer 创建一个 wrapper

   <body>
        <div id="wrapper">
            <div id="sticker">
                <div class="sticker-con">我是内容</div>
            </div>
            <div class="footer">我是脚</div>
        </div>
    </body>
    .wrapper{
        position:fixed;  // 这样 wrapper 就可以直接从 html,body 继承 百分比高度了
        overflow:auto;   // 当高度超过 100% ;时产生滚动条
        width:100%;
        height:100%;     // 继承自 body
    }
    // wrapper 内部包裹的结构,就如上所示了,css样式也一样

3. 当无法用百分比获取高度时,也可通过js方式获得

    //css样式同第一种, 只是 sticker 的 min-height 用css获取

    <body>
        <div id="sticker">
            <div class="sticker-con">我是内容</div>
        </div>
        <div class="footer">我是脚</div>
    </body>


    var sticker = document.querySelector('#sticker');
    var h = document.body.clientHeight;
    sticker.style.minHeight = h - 44 + 'px';

    //这种方式也可应对一些特殊情况,比如有头部导航栏的情况,可以灵活的处理 min-height:

4. 强大的 flex 布局 flex-direction:column

将wrapper容器 display:flex; flex-direction:column

sticker: flex:1; 占据除footer以外的剩余空间

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <title>sticker footer</title>
</head>
<style>
    html,body{
        width: 100%;
        height: 100%;
        background-color: #ccc;
        margin:0;
        padding: 0;
        
    }
    header{
        height:44px;
        width: 100%;
        text-align: center;
        line-height: 44px;
    }
    #wrapper{
        display: flex;
        flex-direction: column;
        width: 100%;
        /*height: 100%;*/
    }
    #sticker{
        background-color: red;
        flex: 1;
    }
    #sticker .sticker-con{
        padding-bottom: 40px;
    }
    .footer{
        background-color: green;
        height: 40px;
    }
</style>    
<body>

    <header>我是头部</header>
    <div id="wrapper">
        <div id="sticker">
            <div class="sticker-con">我是内容</div>
        </div>
        <div class="footer">我是脚</div>
    </div>
    
</body>
<script>
    var wrapper = document.querySelector('#wrapper');
    var h = document.body.clientHeight;
    wrapper.style.minHeight = h - 44 + 'px';   // 减去头部导航栏高度

</script>
</html>

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

回复

使用道具 举报

4

主题

2万

回帖

58

积分

注册会员

Rank: 2

积分
58
发表于 2022-12-11 18:19:18 | 显示全部楼层
很不错的玩意
回复 支持 反对

使用道具 举报

8

主题

2万

回帖

52

积分

注册会员

Rank: 2

积分
52
发表于 2023-7-8 02:10:21 | 显示全部楼层
哟哟哟哟哟以偶
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

79

积分

注册会员

Rank: 2

积分
79
发表于 2023-9-2 18:17:30 | 显示全部楼层
dfdsafdsfdsfdsf
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

319

积分

中级会员

Rank: 3Rank: 3

积分
319
发表于 2023-9-20 17:51:55 | 显示全部楼层
撒房产税陈飞飞
回复 支持 反对

使用道具 举报

匿名  发表于 2023-9-21 00:00:40

Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen


In der Welt der Literatur ist eine Ghostwriter Agentur eine vertrauenswurdige Ressource  unsere Ghostwriter Agentur verfugt uber erfahrene Autoren  die ghostwriter agentur ist Ihr Partner fur erfolgreiche Texte.
回复 支持 反对

使用道具

匿名  发表于 2023-9-21 00:01:18

Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen

Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen die Experten in unserer Ghostwriter Agentur beherrschen verschiedene Schreibstile  die ghostwriter agentur ist Ihr Partner fur erfolgreiche Texte.
回复 支持 反对

使用道具

匿名  发表于 2023-9-21 00:01:58

Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen


In der Welt der Literatur ist eine Ghostwriter Agentur eine vertrauenswurdige Ressource  unsere Ghostwriter Agentur verfugt uber erfahrene Autoren  die ghostwriter agentur ist Ihr Partner fur erfolgreiche Texte.
回复 支持 反对

使用道具

匿名  发表于 2023-9-21 00:03:18

Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen


In der Welt der Literatur ist eine Ghostwriter Agentur eine vertrauenswurdige Ressource die Experten in unserer Ghostwriter Agentur beherrschen verschiedene Schreibstile  die ghostwriter agentur ist Ihr Partner fur erfolgreiche Texte.
回复 支持 反对

使用道具

匿名  发表于 2023-9-21 00:04:00

Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen

УОН 178.137.244.x ·±нУЪ 2023-9-21 00:01
Die Ghostwriter Agentur bietet professionelle Schreibdienstleistungen die Experten in unserer Ghostw ...

In der Welt der Literatur ist eine Ghostwriter Agentur eine vertrauenswurdige Ressource  unsere Ghostwriter Agentur verfugt uber erfahrene Autoren  die ghostwriter agentur ist Ihr Partner fur erfolgreiche Texte.
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2025-2-3 16:57 , Processed in 0.135126 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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