sticker-footer布局

Posted qiqi715

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sticker-footer布局相关的知识,希望对你有一定的参考价值。

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

<body>
    <div id="sticker">
        <div class="sticker-con">我是内容</div>
    </div>
    <div class="footer">我是脚</div>
</body>
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、嵌套层级很深,无法直接从上级继承 百分比高度的

<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方式获得

<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‘;

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

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

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

  • 将wrapper容器 display:flex; flex-direction:column
  • sticker: flex:1; 占据除footer以外的剩余空间
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;
}
<header>我是头部</header>
<div id="wrapper">
    <div id="sticker">
        <div class="sticker-con">我是内容</div>
    </div>
    <div class="footer">我是脚</div>
</div>
var wrapper = document.querySelector(‘#wrapper‘);
var h = document.body.clientHeight;
wrapper.style.minHeight = h - 44 + ‘px‘;   // 减去头部导航栏高度    

以上是关于sticker-footer布局的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

Wordpress - 将代码片段包含到布局的选定部分的插件

有没有更聪明的方法将布局绑定到片段?

android片段表格布局

重新创建片段布局

片段布局不覆盖整个屏幕