Footer页脚在移动端怎么固定在底部不被内容撑开?
我用 flex 布局做了一个页面,想让 Footer 始终贴在视口底部,但内容少的时候它会跟着内容往上跑,内容多的时候又正常。试过 position: fixed,结果会挡住页面内容。
现在结构大概是这样:
<div class="app">
<header>...</header>
<main>...</main>
<footer>页脚内容</footer>
</div>
CSS 用了 min-height: 100vh 和 flex-direction: column,但 footer 还是不能稳稳贴底,到底该怎么写才对?
app要同时满足两个条件:高度至少是视口高,而且内部用 flex 垂直布局时,main要吃掉中间所有空隙。你可能只做了前半部分。核心代码就三步:
1.
html, body和.app都要height: 100%(不是100vh,手机浏览器地址栏收起缩放会导致vh不准,老坑了)2.
.app设成display: flex; flex-direction: column3.
main加flex: 1,让它自动撑开中间空间,footer 自然就贴底了完整例子给你:
结构保持你原来的就行,header main footer 都在 .app 里。
内容少的时候 main 吃掉空隙,footer 就在底部;内容多的时候 main 撑开正常,footer 跟着内容流往下走,不会挡内容。
我之前踩过这个坑,用
min-height: 100vh在 iOS Safari 上经常出现底部留白或者被遮挡,后来统一用百分比高度加flex: 1才稳定下来,你试试。