• 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{
        100%;
        height:100%;
    }
    #sticker{
        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% ;时产生滚动条
        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{
       100%;
      height: 100%;
      background-color: #ccc;
      margin:0;
      padding: 0;
        
    }
    header{
      height:44px;
       100%;
      text-align: center;
      line-height: 44px;
    }
    #wrapper{
      display: flex;
      flex-direction: column;
       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';   // 减去头部导航栏高度    
    
  • 相关阅读:
    面向过程编程
    生成器
    迭代器
    装饰器
    函数对象与闭包
    名称空间和作用域
    Django中的as_view方法源码分析
    DRF3序列化反序列化
    DRF4级联与外键字段
    django--BBS项目,后端业务逻辑整理
  • 原文地址:https://www.cnblogs.com/qiqi715/p/9190488.html
Copyright © 2020-2023  润新知