zoukankan      html  css  js  c++  java
  • js 固定底部 footer/自动计算页面高度

    更新一种更简单的 css 方法:

    .main {
       /* header: 30px; footer:100px; total:130px*/ 
      min-height: calc(100vh - 130px); 
    }

      

    calc() 函数用于动态计算长度值。

    • 需要注意的是,运算符前后都需要保留一个空格,例如: calc(100% - 10px)
    • 任何长度值都可以使用calc()函数进行计算;
    • calc()函数支持 "+", "-", "*", "/" 运算;
    • calc()函数使用标准的数学运算优先级规则;

    除了 display: fixed,方法将 footer 固定在底部,记录下用 js 获取页面 innerHeight,计算出 main 的高度。

    HTML:

    <body>
      <header>header</header>
      <main class="main">main</main>
      <footer>footer</footer>
    </body>

    JS:

    function windowHeight () {
         // header: 30px; footer:100px; total:130px
            let mainMinHeight = window.innerHeight - 130
            mainMinHeight = bodyMinHeight > 0 ? bodyMinHeight : 0
            document.getElementsByClassName('main')[0].style.minHeight = mainMinHeight + 'px'
    }
    

      

     vue 中使用:

    new Vue({
        el,
        data () {
          return {
            windowHeight: 0,
          }
        },
        watch: {
          windowHeight: function (newHeight) {
            // brand-header: 36px; nav-header: 60px; footer:193px; main.margin-top: 5px; total:294px
            let mainMinHeight = newHeight - 294
            mainMinHeight = mainMinHeight > 0 ? mainMinHeight : 0
            document.getElementsByClassName('main')[0].style.minHeight = mainMinHeight + 'px'
          },
        },
        mounted () {
          this.windowHeight = window.innerHeight
          this.$nextTick(() => {
            window.addEventListener('resize', () => {
              this.windowHeight = window.innerHeight
            })
          })
        },
    })
    

      

  • 相关阅读:
    NOIP模拟测试7
    BigInt类
    bzoj 2733 [HNOI2012]永无乡 并查集+平衡树
    bzoj 2752 [HAOI2012]高速公路(road) 线段树
    bzoj 1584 Cleaning Up 打扫卫生 dp
    201709 半集训
    [SHOI2014]概率充电器 dp
    NOIP2016 天天爱跑步
    [HNOI2011] 数学作业
    [Poi2012]Festival
  • 原文地址:https://www.cnblogs.com/zhangym118/p/12600272.html
Copyright © 2011-2022 走看看