Skip to content
本页目录

footer固定在底部

vue
<template>
  <div class="app-container">
   <header style="background: red">head</header>
   <main style="background: green">main</main>
   <footer style="background: pink">footer</footer>
  </div>
</template>

1. 绝对定位

app-container设置box-sizing: border-box;避免高度溢出, 同时设置padding-bottomfooter预留高度, footer通过绝对定位固定在底部

scss
$ft-h: 60px;
.app-container {
  position: relative;
  min-height: 100vh;
  box-sizing: border-box;
  padding-bottom: $ft-h;
  header, main, footer {
    height: 60px;
    line-height: 60px;
    width: 100%;
  }
  footer {
    height: $ft-h;
    position: absolute;
    bottom: 0;
    left: 0;
  }
}

2. flex

app-container采用flex布局后, main设置flex: 1填充剩余区域

scss
.app-container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  main {
    flex: 1
  }
  header, footer {
    height: 60px;
    width: 100%;
  }
}

3. calc

scss
.app-container {
  main {
    min-height: calc(100vh - 60px - 60px);
  }
  header, footer {
    height: 60px;
    width: 100%;
  }
}